+ -
当前位置:首页 → 问答吧 → 遍历

遍历

时间:2011-12-08

来源:互联网

遍历无效,对tb的设置怎么运行不出来啊?
C# code

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            queryControl();
        }
    }
    public void queryControl()
    {
        //System.Web.UI.WebControls.TextBox control;
        foreach (System.Web.UI.Control control in this.Controls)
        {
            if (control is System.Web.UI.WebControls.TextBox)
            {
                System.Web.UI.WebControls.TextBox tb = (System.Web.UI.WebControls.TextBox)control;
                tb.BackColor = System.Drawing.Color.Red;
                tb.Visible = false;
            }
        }

    
    }

作者: jckson2007   发布时间: 2011-12-08

你也不过遍历了this下最浅层的几个控件而已,更深的控件根本达不到。

作者: sp1234   发布时间: 2011-12-08

比如说把,随便把TextBox布局在一个PlaceHolder或者Panel中,你也不过遍历到上面的容器控件而已。

作者: sp1234   发布时间: 2011-12-08

因为你只遍历了Page下第一层的子控件,而TextBox不在其内,假如你的页面很简单的话,可以改成:
foreach (System.Web.UI.Control control in this.Form.Controls)
其他不变。

如果TextBox位于的层次较深,且处于不同层次,则需要递归查找。

作者: dalmeeme   发布时间: 2011-12-08

tb.Visible = false;
你就是查出来了,你也看不到了

作者: DENQH   发布时间: 2011-12-08

引用 3 楼 dalmeeme 的回复:
因为你只遍历了Page下第一层的子控件,而TextBox不在其内,假如你的页面很简单的话,可以改成:
foreach (System.Web.UI.Control control in this.Form.Controls)
其他不变。

如果TextBox位于的层次较深,且处于不同层次,则需要递归查找。

在Content控件中

作者: jckson2007   发布时间: 2011-12-09

相关阅读 更多