我有一个用户控件,由两个嵌套的手风琴组成,里面有一个转发器,所有这些都是从数据库中提取的。转发器里面有CheckBoxes和MutuallyExclusiveCheckBoxExtenders。当页面回发时,我试图使用LINQ和递归FindControl函数来收集所有CheckBoxes。问题是没有找到CheckBoxes。
基本结构,为简洁而清理:
<ajaxToolkit:Accordion ID="acc1">
<ContentTemplate>
<ajaxToolkit:Accordion ID="acc2">
<ContentTemplate>
<asp:Repeater ID="r1">
<ItemTemplate>
<asp:CheckBox ID="cb1" />
<asp:CheckBox ID="cb2" />
<ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="mece1" TargetControlID="cb1" />
<ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="meceMine2" TargetControlID="cb2" />
</ItemTemplate>
</asp:Repeater>
</ContentTemplate>
</ajaxToolkit:Accordion>
</ContentTemplate>
</ajaxToolkit:Accordion>
一切都正确显示。单击按钮,页面上的其他位置,我试图收集所有控件,只显示手风琴控件,一些文字和我正在使用的隐藏字段。
这是我正在使用的递归FindControls函数:
public static void FindControls(Control start, List<Control> list)
{
list.Add(start);
foreach (Control c in start.Controls)
{
FindControls(c, list);
}
}
即使正确显示,此函数也永远不会找到CheckBox以返回它们。
答案 0 :(得分:0)