1、今天遇到遍历页面控件时,无法找到控件的问题。
原来,在Page_Load事件中,我用如下代码:
foreach(object c as Page.Controls) 
{
if(c is CheckBox) 
...{
Response.Write((c as CheckBox).ID.ToString() + "<br />";
}
}够得到全部的CheckBox控件,但是在一个Button的Click 事件中,同样的函数,确得不到一个控件。一直搞不明白;
最后把object c as Page.Controls改成了object c as form1.Controls后能够得到同样的结果。
最后知道原因了:
控件是树型结构的,CheckBox是form的子控件,不是Page的子控件。所以, Page.Controls是指form控件等等,而如果想得到CheckBox这些,要遍历的是它的父控件form1。至于为什么在Page_Load中可以,我想可能是在Page_Load时都要把.NET控件都转换成HTML控件,自动遍历所有控件,所以能够得到所有form1下的子控件。还得找找有关资料