在ASP.NET中找到控件的更好方法我有一个复杂的ASP.NET窗体,在一个窗体中甚至有50-60个字段,比如Multiview,在MultiView中,我有一个GridView,在GridView内部,我有几个CheckBoxes.当前,我正在使用FindControl()方法并检索子ID。现在,我的问题是,是否有其他方法/解决方案可以在ASP.NET中找到嵌套控件。
3 回答
BIG阳
TA贡献1859条经验 获得超6个赞
public static IEnumerable<T> FindControlsOfType<T>(this Control parent)
where T : Control{
foreach (Control child in parent.Controls)
{
if (child is T)
{
yield return (T)child;
}
else if (child.Controls.Count > 0)
{
foreach (T grandChild in child.FindControlsOfType<T>())
{
yield return grandChild;
}
}
}}
慕哥6287543
TA贡献1831条经验 获得超10个赞
public T GetControlByType<T>(Control root, Func<T, bool> predicate = null) where T : Control {
if (root == null) {
throw new ArgumentNullException("root");
}
var stack = new Stack<Control>(new Control[] { root });
while (stack.Count > 0) {
var control = stack.Pop();
T match = control as T;
if (match != null && (predicate == null || predicate(match))) {
return match;
}
foreach (Control childControl in control.Controls) {
stack.Push(childControl);
}
}
return default(T);}添加回答
举报
0/150
提交
取消
