日期:2014-05-18  浏览次数:20922 次

遍历
遍历无效,对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;
            }
        }

    
    }



------解决方案--------------------
你也不过遍历了this下最浅层的几个控件而已,更深的控件根本达不到。
------解决方案--------------------
因为你只遍历了Page下第一层的子控件,而TextBox不在其内,假如你的页面很简单的话,可以改成:
foreach (System.Web.UI.Control control in this.Form.Controls)
其他不变。

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