首页 新闻 会员 周边 捐助

为什么套用母板页和updatepanle后遍历不到页面上的控件

0
悬赏园豆:10 [已解决问题] 解决于 2009-08-06 15:41

为什么套用母板页和updatepanle后遍历不到页面上的控件 页面上全部是服务器控件 我查看this.page.Controls.count()等于5  我页面上有20个 请教

foreach (Control control in this.page.Controls)
            {
                if (control is System.Web.UI.WebControls.TextBox)
                    ((TextBox)control).Text = "";
                else if (control is System.Web.UI.WebControls.DropDownList)
                {
                    if (((DropDownList)control).Items != null)
                        ((DropDownList)control).SelectedIndex = 0;
                }
            }

Drin Chan的主页 Drin Chan | 初学一级 | 园豆:6
提问于:2009-08-06 11:52
< >
分享
最佳答案
0

它们是树状嵌套结构,遍历的话要递归:

void each(Control c)

{

  foreach(Control f in c.Controls)

  {

    Response.Write(f.ID+"<br />");

    each(f);

  }

}

调用时只要:each(Page);

另外找控件最好用FindControl 方法,传入控件ID,如:

var t3=Page.Controls.FindControl("TextBox3") as TextBox;

收获园豆:10
斯克迪亚 | 老鸟四级 |园豆:4124 | 2009-08-06 14:06
each(Page);这样调用有问题 提示类型不匹配
Drin Chan | 园豆:6 (初学一级) | 2009-08-06 16:11
不应该啊,Page也是继承自Control的啊 不行就foreach(Control f in Page.Controls)each(f);
斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-08-06 18:07
@斯克迪亚: 不信你试试 你说的那个方法还是不行
Drin Chan | 园豆:6 (初学一级) | 2009-08-06 21:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册