2015-11-03 69 views
1

我有一个函数应该清除/重置我的aspx.page中的所有文本框,并且此页面使用母版页但它不起作用。下面是代码。刚刚从这个网站获得这个代码。重置/清除所有文本框功能不起作用

//Clear all textbox 

ResetTextBoxes(this); 

//function to clear textboxes 
    private void ResetTextBoxes(Control parent) 
     { 
      if (parent is TextBox) 
      { 
       ((TextBox)parent).Text = string.Empty; 
      } 

     foreach (Control child in parent.Controls) 
     { 
      if (child is TextBox) 
      { 
       ((TextBox)child).Text = string.Empty; 
      } 

      ResetTextBoxes(child); 
     } 

    } 
+5

你是怎么调用ResetTextBoxes的,在这种情况下是什么? –

+0

(this)是包含控件的页面。 –

回答

1

只是想分享asp.net代码隐藏的解决方案。在这里,你应该把你的文本框的所有id放在数组中。

 TextBox[] textboxes = {TextBox2,TextBox3,TextBox4,TextBox5,TextBox6 }; 

    for (int i = 0; i < 5; i++) 
    { 
     TextBox myTextBox = textboxes[i]; 
     myTextBox.Text = ""; 
    } 
+0

哇!有用!谢啦!我不认为这可以通过将id放在数组中并通过索引访问它们来完成。哈哈哈。反正,谢谢! –

0

控件有时很难更新。尝试拨打child.Refresh();,看看是否修复它。

+0

在我的代码的哪一部分应该使用child.Refresh? –

1

我找到的另一种方法是使用一个JavaScript函数,将清除我所有的asp.net文本框。我为所有的文本框添加了一个类,例如

<asp:TextBox ID="txtName" runat="server" class="mTxtBox"> </asp:TextBox> 
    <asp:TextBox ID="txtID" runat="server" class="mTxtBox"> </asp:TextBox> 
    <asp:TextBox ID="txtDept" runat="server" class="mTxtBox"> </asp:TextBox> 
    <asp:Button onclick="ClearTxtBoxes_Click" ID="ClearTxtBoxes" runat="server" Text="Clear Fields"> </asp:Button> 

//按钮

的onclick事件
ScriptManager.RegisterStartupScript(this,this.GetType(),"runJs","clearText();",true); 

//我JavaScriptFunction

function clearText(){ 
    $('.mTxtBox').val(''); 
    }