2013-10-18 127 views
-1

- 我有一個包含大量文本框的窗體。 - 當我點擊「清除」時,我想讓他們全部重置或將他們的.Text值設置爲「」; 。我不想寫「(Textbox1.text =」「;)」14或15次。 - 請不要讓它變得比它需要的更困難。 - 我使用asp.net 4.5。按鈕單擊清除多個文本框控件

+0

你想清楚只是客戶端還是你想它做回發和清除? – NotMe

回答

1

我創建了兩個文本框Textbox1和Textbox2。以下是清除它們的代碼。

protected void Button1_Click(object sender, EventArgs e) 
    { 
     var tbs = new List<TextBox>() {TextBox1,TextBox2 }; 
     foreach(var textBox in tbs) 
     { 
      textBox.Text = ""; 
     } 
    } 
0

您可以遍歷頁面上的所有控件並清除那些文本框。像這樣的東西可能會幫助你開始:

public void ClearTextBoxes(Control parent) 
{ 
    foreach (Control c in parent.Controls) 
    { 
     if ((c.GetType() == typeof(TextBox))) 
     { 
      // Clear the text box 
      ((TextBox)(c)).Text = ""; 
     } 
    } 
} 

所以你可以在你點擊按鈕時調用這個函數。

ClearTextBoxes(this); 
1

我有列舉了一些家長控制所有特定類型的子控件這個方便的方法,不管他們是在一些容器控件更深層次:

public List<T> FindControl<T>(Control holder) where T : Control 
{ 
    var result = new List<T>(); 
    foreach (Control control in holder.Controls) 
    { 
    if (control is T) 
     result.Add(control as T); 
    result.AddRange(FindControl<T>(control)); 
    } 
    return result; 
} 

所以你的情況,你可以得到所有控件Page_Load

var pageTextBoxes = FindControl<TextBox>(this); 

,如果你這樣做,在Page_Load,那麼這就是當前的頁面,你會得到頁上的所有文本框年齡,所以才明確表示:

foreach (var txtControl in pageTextBoxes) 
    { 
    txtControl.Text = ""; 
    } 

如果你希望有更多的條件,例如,如果文本框的ID開始與LeftControl:

foreach (var txtControl in pageTextBoxes.Where(tx => tx.ID.StartsWith("LeftControl"))) 
    { 
    txtControl.Text = ""; 
    } 
0

您可以採取以下2種方法之一:

  1. 添加一個html重置按鈕,單擊該按鈕會自動將值重置爲最後的值

這裏http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_reset

  1. 看到它第一次將不會回發後工作,但你可以使用JavaScript做的,而不是編寫服務器端代碼。使用以下方法並傳遞您的表單,或者可以相應地更改它。

http://www.javascript-coder.com/javascript-form/javascript-reset-form.phtml

0

有時候,你不能讓所有的器WebControls在一個頁面,所以使用的Request.Form你可以得到所有的控制和清除控制(當然這可能幫助你)

public void ClearTextboxes() 
    { 
     foreach (string control in Request.Form.AllKeys) 
     { 
      Control pageControl = Page.FindControl(control); 
      if (pageControl is TextBox) 
      { 
       TextBox textBox = (TextBox)pageControl; 
       textBox.Text = ""; 
      } 
     } 
    } 
0
var txt= new List<TextBox>() {TextBox1ID,TextBox2ID }; 
    foreach(var textBox in txt) 
    { 
     textBox.Text = string.Empty; 
    } 

這可能有幫助

相關問題