我如何获得位于另一个转发器中的文本框?
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Repeater ID="Repeater2" runat="server">
....
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
我在repeater2 ItemDataBound 中,我需要获取TextBox1 的值,我该怎么做。
Protected Sub Repeater2_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.RepeaterItemEventArgs)
??
End Sub
最佳答案
内层repeater的NamingContainer
是外层Repeater
的RepeaterItem
,然后使用FindControl
获取对 TextBox
的引用:
protected void Repeater2_ItemDataBound(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater innerRepeater = (Repeater) sender;
RepeaterItem outerItem = (RepeaterItem) innerRepeater.NamingContainer;
TextBox TextBox1 = (TextBox) outerItem.FindControl("TextBox1");
}
}
关于c# - 访问控件: Nested repeater,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16149759/