0
我想枚舉通過頁面的所有控件,但我可以找到的是thePage.FindControl(string)
和.Controls屬性不具有我在頁面上的控件。任何人都知道如何枚舉通過web窗體頁面的所有控件,這有可能嗎?
我想枚舉通過頁面的所有控件,但我可以找到的是thePage.FindControl(string)
和.Controls屬性不具有我在頁面上的控件。任何人都知道如何枚舉通過web窗體頁面的所有控件,這有可能嗎?
以下應該枚舉所有的子控件。
IEnumerable<Control> GetAllChildControls(ControlCollection controls)
{
foreach(Control c in controls)
{
yield return c;
if(c.Controls.Count > 0)
{
foreach(Control control in GetAllChildControls(c.Controls))
{
yield return control;
}
}
}
}
Controls屬性只包含當前控件的直接子項。如果要遍歷頁面上的所有控件,則必須遍歷頁面的子元素,然後遞歸遍歷子元素,然後再遍歷子元素的孩子等等。遞歸方法是實現這一點最直接的方法。