2015-06-09 73 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; 
      } 
     }