簡體   English   中英

如何在后台代碼中的Repeater控件中獲取對標簽的引用

[英]How to get a reference to a label in a Repeater control in code-behind

<asp:repeater id="rpt" run="server">
<ItemTemplate>
<asp:LinkButton id="Delete" runat="server" OnCommand="Delete_Command"></asp:linkButton>
<asp:label id="lblMessage" run="server">
</ItemTemplate>
</asp:repeater>

背后的代碼:

protected void Delete_Command(object sender, CommandEventArgument e)
{

}

如何在Delete_Command中引用“ lblMessage”?

我建議稍微重組一下代碼,這將使您可以使用FindControl輕松執行此類操作。 基本上,我的建議可以歸結為處理Command事件,而不是鏈接按鈕,而是轉發器本身:

<asp:repeater id="rpt" run="server" OnItemCommand="rpt_ItemCommand">

然后,訪問項目內容非常簡單:

protected void rpt_ItemCommand(object sender, RepeaterCommandEventArgs e)
{
    Label label = e.Item.FindControl("lblMessage");
    LinkButton linkButton = e.Item.FindControl("Delete");
}

您可以嘗試以下方法:

頁面:

<asp:Repeater ID="rpt" runat="server" OnItemCommand="rpt_ItemCommand">
<ItemTemplate>
    <asp:LinkButton ID="Delete" runat="server" CommandName="Delete"></asp:LinkButton>
    <asp:Label ID="lblMessage" runat="server"/>
</ItemTemplate>

背后的代碼:

protected void rpt_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "Delete")
    {
        Label lblMessage = e.Item.FindControl("lblMessage") as Label;
    }
}

暫無
暫無

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

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