簡體   English   中英

無法為中繼器控件內的LinkBut​​ton設置所選樣式

[英]Cannot set selected style for LinkButton which inside a repeater control

我的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>

我想通過Buttonlink_Click事件設置linkbutton linkbtTitle的選定樣式:

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

</script> 

但是它有一個錯誤,無法解析符號linkbtTitle ,為什么? 僅僅因為linkbutton在Repeater內部,所以我不能通過上述方式訪問它。

怎么???,幫忙!!!

中繼器是Web數據綁定控件之一,它可以重復項。 因此,通常有不止一項。 這就是為什么您不能直接訪問它。 它位於另一個NamingContainer ,后者是RepeaterItem的RepeaterItem。

但是,引發事件的控件始終是sender參數。 因此,您只需要強制轉換:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM