2015-06-09 100 views
1

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

+0

“输入特定的麻木”是什么? –

+1

无论如何,拥有50个不可见的文本框是一个坏主意。 – sobolevn

+0

“输入特定的麻木”意味着用户输入例如:如果用户输入2,则只有2个文本框应该可见,其余48个应该是不可见的 – Deepa

回答

1

应该结束了看起来像这样:

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

这将使所有文本框可见。 OP希望能够根据用户输入来调节可见光的数量。 – DeanOC

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不为空,产品文本框,实际上是:

<input type="text"/> 

你可以用其他HtmlControls来做同样的技巧。 将form1更改为您自己的形式,它控制着您要循环播放的内容。

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; 
      } 
     }