我有两个嵌套的转发器和一个内部的复选框,就像这样
<asp:Repeater ID="rptInterestCategory" runat="server" OnItemDataBound="rptInterestCategory_ItemDataBound">
<ItemTemplate>
<asp:Repeater ID="rptInterests" runat="server" OnItemDataBound="rptInterests_ItemDataBound">
<ItemTemplate>
<asp:CheckBox ID="cbInterest" runat="server" OnCheckedChanged="cbInterest_CheckedChanged" Data-Id='<%# DataBinder.Eval(Container.DataItem, "id") %>' Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' />
</ItemTemplate>
</asp:Repeater>
<hr/>
</ItemTemplate>
</asp:Repeater>
现在,在另一个按钮点击事件中,我想查找所有复选框(cbInterest
),并且需要获取其中的值。这样做的正确方法是什么?
答案 0 :(得分:1)
循环使用它们的方法是首先获得对嵌套Repeater的引用:
Repeater rptInterests = (Repeater)rptInterestCategory.FindControl("rptInterests");
然后你可以遍历数据项,找到复选框,并获取CheckBox的值:
foreach (RepeaterItem item in rptInterests.Items)
{
CheckBox cbInterest = (CheckBox)item.FindControl("cbInterest");
bool isChecked = cbInterest.Checked;
}