清除ASP.net表单中的所有字段

时间:2010-09-25 14:10:31

标签: asp.net

是否有一种简单的方法可以重置表单中的所有字段?

我的asp.net表格中有大约100个控件,还有提交和重置按钮。

当用户点击重置按钮时,如何使字段中的所有值为空?

我有很多下拉框,文本框,复选框。

7 个答案:

答案 0 :(得分:19)

将此添加到取消按钮的服务器端处理程序:

Response.Redirect("~/mypage.aspx", false);

答案 1 :(得分:14)

遍历页面上的所有控件,如果控件是TextBox类型,则将Text属性设置为String.Empty

protected void ClearTextBoxes(Control p1)
{
    foreach (Control ctrl in p1.Controls)
    {
        if(ctrl is TextBox)
        {
             TextBox t = ctrl as TextBox;

             if(t != null)
             {
                  t.Text = String.Empty;
             }
        }
        else
       {
           if (ctrl.Controls.Count > 0)
           {
               ClearTextBoxes(ctrl);
           }
        }
    }
}

然后在你的点击事件中调用它:

 ClearTextBoxes(Page);

答案 2 :(得分:8)

尝试添加:

<input type="reset" value="Clear" />

到你的表格。

答案 3 :(得分:8)

您可以使用OnClientClick事件。这将重置表单上的所有控件。 OnClientClick="this.form.reset();return false;"

参见守则:

<asp:Button ID="Reset_Button" runat="server" Text="Reset" 
    Width="81px" OnClientClick="this.form.reset();return false;" />

答案 4 :(得分:4)

我方面最好的选择是

Response.Redirect(Request.RawUrl);

只需在asp.net控件的取消或重置按钮上添加此代码即可。

答案 5 :(得分:1)

如果您使用的是asp.net formview对象,只需在重置按钮点击事件中使用myFormView.DataBind();

答案 6 :(得分:0)

或者如果您使用的是Angular。

将其添加到cshtml页面上的按钮:

<input type="button" value="Cancel" id="cancel" ng-click="cancel();" />

这是你的.js文件:

$scope.cancel = function () {
    if (!$('form').dirtyForms('isDirty')) {
        $('form').dirtyForms('setClean');
    }
    else {
        $('form').dirtyForms('isDirty', true);
    }
     var that = this;
    var method = that.getUrl('CONTROLLER', 'ACTION', 'id', 'querystring');
    window.location = method;