У меня есть вложенные повторители на моей странице aspx. Во внешнем повторителе я отображаю список продуктов, а во внутреннем повторителе я показываю список дополнительных параметров, связанных с каждым продуктом. Внутренний повторитель содержит флажок, текстовое поле, метка и другие вещи. Я хотел бы найти элементы управления внутри внешнего повторителя, когда пользователь выбирает флажок во внутреннем повторителе. Чтобы справиться с этим, я использую следующий код.
<asp:Repeater ID="OuterRepeater" runat="server"
onitemdatabound="OuterRepeater_ItemDataBound" >
<ItemTemplate>
<asp:Label ID="CodeLabel" runat="server" Text='<%# Eval("Code") %>'></asp:Label>
<asp:Repeater ID="InnerRepeater" runat="server" OnItemCreated="InnerRepeater_ItemCreated">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true"/>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
......
.......
</ItemTemplate>
</asp:Repeater>
......
......
</ItemTemplate>
</asp:Repeater>
protected void InnerRepeater_ItemCreated(object sender, RepeaterItemEventArgs e)
{
RepeaterItem ri = (RepeaterItem)e.Item;
if (ri.ItemType == ListItemType.Item || ri.ItemType == ListItemType.AlternatingItem
)
{
CheckBox cb = ri.FindControl("CheckBox1") as CheckBox;
cb.CheckedChanged += new EventHandler(CheckBox1_CheckedChanged);
}
}
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
if (cb.Checked)
{
//do something
}
else
{
//do something
}
}
Но событие checkChanged флажка по какой-то причине не запускается. Также я не уверен, как получить доступ к текстовому полю внешнего повторителя в проверенном измененном событии элемента управления флажка внутреннего повторителя.
Может ли кто-нибудь помочь мне с этим?
Спасибо