我正在尝试遍历CreateUserWizardStep的CreatedUser事件中的ControlCollection。我有一个ContentTemplate,其中包含一个完整的复选框,我用它来收集用户在一周内的可用性。为了简洁起见,我将我的代码粘贴到pastebin上。
Here是指向.aspx页面的链接。 Here是CreatedUser事件。
这个循环:
foreach (Control c in CreateUserWizardStep1.ContentTemplateContainer.Controls)
{
if (c.GetType() == typeof(CheckBox))
{
}
}
给我一个WizardDefaultInnerTable而不是......更容易使用的东西。
如何进入第二张桌子内的复选框?我想要做的是找到checked属性,然后构建我可以放入数据库的字符串。任何指导都表示赞赏。
谢谢!
答案 0 :(得分:2)
你必须以递归的方式完成控制。但是,你也可以通过你设置的id来引用它们。
递归解决方案看起来像:
IEnumerable<T> FindControls<T>(Control parent) where T : Control {
T t = parent as T;
if (t != null) yield return t;
foreach (Control c in parent.Controls) {
foreach (var c2 in FindControls<T>(c)) yield return c2;
}
}