是否有一种简单的方法可以重置表单中的所有字段?
我的asp.net表格中有大约100个控件,还有提交和重置按钮。
当用户点击重置按钮时,如何使字段中的所有值为空?
我有很多下拉框,文本框,复选框。
答案 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;