2013-07-09 29 views
0
<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> 

代碼隱藏Repeater控件:如何獲取到標籤的引用代碼隱藏

protected void Delete_Command(object sender, CommandEventArgument e) 
{ 

} 

我怎樣才能在DELETE_COMMAND了「lblMessage」的參考?

+0

http://forums.asp.net/t/1150079.aspx/1的 –

+0

可能重複[如何獲得在代碼中引用的標籤,repeter項目背後(HTTP ://stackoverflow.com/questions/17541206/how-to-get-reference-to-the-label-in-repeter-item-in-code-behind) – user1429080

回答

0

我建議您稍微重新組織一下代碼,這將使您可以使用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"); 
} 
0

你可以試試這個:

頁:

<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; 
    } 
}