我页面上有几个TextBox,要做一个判断,当不符合条件时,全部TextBox的Enabled属性改为False

解决方案 »

  1.   

    循环遍历整个页面。将类型为TextBox的筛选出来,然后赋值,如果不会遍历去,找点。net的面试题看看,那上面一定有我记得看过、
      

  2.   

    依着我,写到一个方法里,这个方法里依次设置每一个TextBox。没有必要取巧。
      

  3.   


    public void Clear(Control page)
    foreach(Control ctrl in page.Controls)
    {
       if(ctrl is TextBox)
          (ctrl as TextBox).Text="";
       if(ctrl.HasControls())
          Clear(ctrl);

    protected void btn_Clear_Click(object sender,EventArgs e)
    {
       Clear(this);
    }
      

  4.   


    foreach (Control c in this.form1.Controls)
            {
                if (c is TextBox)
                {
                    ((TextBox)c).Enabled == false;
                }
            }
      

  5.   


    foreach(Control ctrl in this.Controls)
    {
       if(ctrl is TextBox)
        ctrl.enabled = false;

      

  6.   

    参考:
    http://school.itzcn.com/special-spid-19.html
    上面讲解的比较详细,希望对楼主有所帮助。
      

  7.   

    三楼的方法千万别用,用了之后,板块上所有的textbox 控件都没了,不是不能使用了,是都没了。
    可以结合三楼和四楼的方法:
    public void ContrlEnable(Control page)
    {
       foreach(Control ctrl in page.Controls)
      {
         if(ctrl.HasControls())
       {
          if(ctrl is TextBox)
          (ctrl as TextBox).Enable=FALSE;
       }
       
       
          
      } 
    }
      

  8.   

    建议:
    如果设置TextBox的Enabled为false后,在后台用Text只能取得服务器端发送的值,比如 
    <asp:textbox id="t1" runat="server" Text="abc" Enabled="false" /> 
    上面这个t1,你在后台通过t1.Text,永远是取到abc,不管你在前台怎么修改都是这样 解决方法: 
    1、不用Enabled="false",改用:
    TextBox1.Attributes.Add("ReadOnly", "ReadOnly"); 
      

  9.   

    可以在服务端判断逻辑。不满足条件禁用输入框时无刷新。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
        <script type="text/javascript">        function disabledAllTextBox()
            {
                var items = document.getElementsByTagName("input");
                for (var i = 0; i < items.length; i++)
                {
                    if (items[i].type == "text")
                    {
                        items[i].disabled = true;
                    }
                }
            }
            
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="sm" runat="server" />
        <div>
        <asp:TextBox ID="tb1" runat="server" />
        <asp:TextBox ID="TextBox1" Text="t" runat="server" />
        <asp:TextBox ID="TextBox2" Text="3" runat="server" TextMode="MultiLine" />
        <asp:TextBox ID="TextBox3" runat="server" TextMode="Password" />
        <asp:UpdatePanel ID="up" runat="server">
        <ContentTemplate>
        <asp:Button ID="btn" runat="server" onclick="btn_Click" />
        </ContentTemplate>
        </asp:UpdatePanel>
        
        </div>
        </form>
    </body>
    </html>
    protected void btn_Click(object sender, EventArgs e)
            {
                if (1 == 1)
                {
                   ScriptManager.RegisterClientScriptBlock(this,this.GetType(), "disabledAllTextBox", "disabledAllTextBox()", true);
                }
            }
      

  10.   


    这种解决办法有时候不合适(客户端是不值得信任的,这种disabled的方法客户端是可以用脚本进行
    私自修改TextBox为孔用的,不安全。