无法为转发器控件内的LinkBut​​ton设置所选样式

时间:2013-10-15 09:51:11

标签: c# asp.net css linkbutton

我的aspx页面中有一个转发器控件:

 <asp:Repeater ID="Repeater1" runat="server">
                    <ItemTemplate>
                        <table>
                            <tr>
                                <td>
                                    <img src="pic/iconnew.jpg"/>
                                </td>
                                <td>
                                    <asp:LinkButton ID="linkbtTitle" runat="server" Text='<%#Eval("title")%>' CommandArgument='<%#Eval("id_notic")%>' OnCommand="linkbtTitle_Click" OnClick="Buttonlink_Click" ></asp:LinkButton>
                                </td>
                                <td>
                                    <asp:Label ID="LabelTime" runat="server" Text='<%#Eval("time")%>' CssClass="TimeMessage" ></asp:Label> 
                                </td>
                            </tr>
                        </table>
                    </ItemTemplate>
                </asp:Repeater>

我想通过linkbtTitle事件为链接按钮Buttonlink_Click设置所选样式:

<script runat="server">  
    protected void Buttonlink_Click(object sender, System.EventArgs e)  
    {
        linkbtTitle.ForeColor = System.Drawing.Color.HotPink;  
    }  

</script> 

但它有错误,无法解析符号linkbtTitle,为什么???仅仅因为链接按钮位于Repeater内部,所以我无法通过上面的方式访问它。

如何???,帮助!!!

1 个答案:

答案 0 :(得分:2)

转发器是web-dataatabound控件之一,它重复项目。所以通常有多个项目。这就是为什么你不能直接访问它。它位于不同的NamingContainer,即转发器的RepeaterItem

但是,引发事件的控件始终是sender参数。所以你只需要施展它:

protected void Buttonlink_Click(object sender, System.EventArgs e)  
{
    LinkButton linkbtTitle =  (LinkButton ) sender;       
    linkbtTitle.ForeColor = System.Drawing.Color.HotPink;  
}