创建Asp.net重置按钮

时间:2012-07-13 04:13:35

标签: asp.net

有没有办法创建重置按钮来清除asp格式的文本字段中的所有文本?当用户点击重置按钮时,他们输入的所有文本都将被清除,并且可以在该区域中输入文本。

7 个答案:

答案 0 :(得分:3)

据我所知,Asp.Net没有提供此类重置功能。 我们可以像这样实现重置

btnReset.Attributes.Add("onClick", "document.forms[0].reset();return false;");

或者 喜欢这个

<input type='button' id='resetButton' value='Reset' onclick='theForm.reset();return false;'/> 

OnClientclick的asp.net按钮使用此theForm.reset();return false;

答案 1 :(得分:2)

在按钮单击方法中,将所有textbox.text.length值设置为0.要么逐个执行,这是一种简单的方法,要么通过获取页​​面上所有类型文本框的控件来执行此操作,这是一点点有点复杂,但可能更少打字,取决于文本框的数量。绝对更易于维护。

private void ChangeBtn_Click(object sender, EventArgs e)
{
   foreach(Control c in Page.Controls)
   {
     if (c.Controls.Count > 0)
     {
       foreach(Control c2 in c.Controls)
       {
          if (c2.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
          {
             myspan.InnerHtml = ((TextBox)c2).Text;
             ((TextBox)c2).Text = "";  //or  ((TextBox)c2).Text.Length = 0;
          }
       }
     }
   }
}

http://msdn.microsoft.com/en-us/library/20zys56y(v=vs.90).aspx

答案 2 :(得分:2)

Click控件创建Button事件,并使用以下代码:

foreach (Control control in Page.Controls)
{
    if (control is TextBox)
    {
        TextBox txt = (TextBox)control;
        txt.Text = "";
    }
}

这将为您节省一些时间来清除网络表单中的所有文本框。

答案 3 :(得分:2)

使用Jquery最简单的方法来查找任何类型的控件,并且不会有回发事件。

$('input[type=text], textarea') 

使用foreach循环清除值。

答案 4 :(得分:2)

尝试创建一个带复位的按钮,并在单击事件中写入ClearInputs(Page.Controls);和事件将调用此方法。

    protected void Button2_Click(object sender, EventArgs e)
{
 ClearInputs(Page.Controls);
}
void ClearInputs(ControlCollection ctrls)
{
 foreach (Control ctrl in ctrls)
 {
 if (ctrl is TextBox)
  ((TextBox)ctrl).Text = string.Empty;
ClearInputs(ctrl.Controls);
 }

}

答案 5 :(得分:0)

请注意

btnReset.Attributes.Add("onClick", "document.forms[0].reset();return false;");

不能用于清除回发的页面,即如果文本框的值为“Silly me”并且已经回发,则此代码将重置为回发值,即“愚蠢的我”。

解决方法是重新发布带有已清除值的页面 - 尝试以下代码(它对我有效)

OnClientClick="document.location.href=document.location.href;"

将重新加载包含已清除值的页面...

答案 6 :(得分:0)

我的页面中有多种输入类型(TextBox,DropDownList和CheckBox),所以这是我将其全部重置的方法

  1. 放置一个<asp:Panel>,用于包装我的输入内容
  2. 在“清除”按钮上运行BtnClear_Click
  3. 循环输入并按类型重置文本/选择/选中的值

代码

Default.aspx

<asp:Panel ID="PanelReport" runat="server">
    ...
    <asp:TextBox ID="fldSpeedoMula" runat="server"></asp:TextBox>
    <asp:DropDownList ID="ddlPlateNo" runat="server" CssClass="form-control"></asp:DropDownList>
    <asp:CheckBox ID="cbCard" runat="server" />
    <asp:CheckBox ID="cbCash" runat="server" />
    <asp:Button ID="BtnClear" runat="server" Text="Clear" CssClass="button" OnClick="BtnClear_Click"/>  
    ...
</asp:Panel>

Default.aspx.cs

protected void BtnClear_Click(object sender, EventArgs e)
{
    // Clear all inputs
    foreach (DropDownList ddl in PanelReport.Controls.OfType<DropDownList>())
    {
        ddl.SelectedIndex = 0;
    }
    foreach (TextBox fld in PanelReport.Controls.OfType<TextBox>())
    {
        fld.Text = string.Empty;
    }
    foreach (CheckBox cb in PanelReport.Controls.OfType<CheckBox>())
    {
        cb.Checked = false;
    }
}