使用for循环使多个文本框可见或不可见

时间:2015-06-09 07:01:34

标签: c# asp.net textbox

在我的表单中,visible=false状态下有50个文本框,当用户输入特定数字时,应显示那些文本框,其余文本框应保持visible false状态。

3 个答案:

答案 0 :(得分:1)

应该最终看起来像这样:

foreach (var control in this.Controls)
{
    var textbox = control as TextBox;
    if (var != null) textbox.Visible = true;
}

答案 1 :(得分:0)

您可以循环播放所有文本框控件,如下所示:

foreach (Control item in this.form1.Controls)
{
    System.Web.UI.HtmlControls.HtmlInputText tbx = item as System.Web.UI.HtmlControls.HtmlInputText;
    if (tbx!= null)
    {
        if(tbx.Text == "some text")
             tbx.Visible = false; // or true how ever you want it
        else
             tbx.Visible = true;
    }

}

因此,如果tbx不为null,则item为textbox,实际上是:

 <input type="text"/>

您可以使用其他HtmlControl执行相同的操作。 将form1更改为您想要循环的控件。

答案 2 :(得分:0)

您可以将所有控件包装在Asp.net Panel Control中。

 int counter = 0;
        int numberOfTextBoxtoShow = 4; // set by user
        foreach (Control c in Panel1.Controls)
        {
            if (c is TextBox)
            {
                if (counter < numberOfTextBoxtoShow)
                {
                    c.Visible = true;
                    counter++;
                }
                else c.Visible = false;
            }
       }