如何在回发后重置asp.net表单?

jps*_*nyx 4 forms asp.net

我正在尝试在btnCreate_OnClick事件之后将表单重置为默认值,就像第一个page_load一样.问题是在PostBack,每个文本框和其他控件之后重新加载ViewState值.由于DropDownList选择上的服务器事件,我无法停用viewstate.到目前为止我找到的唯一方法是在click事件之后重定向到self,但这会加载页面两次,因此是一个糟糕的解决方案.我尝试了ViewState.Clear()并更新了UpdatePanel,但没有成功.

我可以为所有控件做一个循环并设置txtXXXXX.Text =="",但我很确定这不是最好的主意.

类似Page.Reset()的东西本来就是完美的但它不存在.

我对这个问题的任何想法?

谢谢

Dav*_*ard 12

如果可行,我通常只使用Response.Redirect从头开始重新加载同一页面.

对页面的初始GET请求通常比后续POST的成本低,因此没有太多理由可以避免它.

  • 这仅适用于有问题的记录通过重定向加载到页面的情况; 因此不能永远使用! (2认同)

小智 6

我们只需2行代码即可重置ASP.NET表单页面

protected void Button_Reset_Click(object sender, EventArgs e)
{
     Session["ViewState"] = null;
     Response.Redirect("/Roster/DRAC/Create.aspx");
}
Run Code Online (Sandbox Code Playgroud)