ASP.Net向导 - 如何清除Web控件的内容

时间:2009-05-07 07:14:25

标签: asp.net

我有一个ASP.NET向导控件,我在其中循环返回wiz.MoveTo(wiz.WizardSteps[0])到FinishButtonClick事件处理程序中向导的第一步。

我还希望清除步骤中所有控件的所有内容?

问题在于,由于viewstate,向导步骤中的控件记住了它们 上一次提交的价值?

我不能在控件上使用enableviewstate = false,因为他们需要能够记住步骤之间的状态(来回)?

仅在FinishButtonClick事件发生时清除所有控件的视图状态的最简单方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

有什么不应该被清除的吗?如果没有,最简单的解决方案可能是在click事件处理程序中进行重定向,以便重新初始化所有内容。

答案 1 :(得分:1)

解决。还学习了一些关于ViewState范围的新内容...

ViewState不负责存储TextBoxes,DropDowns,CheckBoxes等控件的修改值。这些控件继承自IPostBackDataHandler接口。 LoadPostBackData事件在页面生命周期中触发,其中控件的VALUES从表单HTTP POST头文件加载...由客户端重新提交...

那么如何销毁HTTP POST Headers来清除控件值?

新请求会导致新的HTTP POST标头...所以我只是在FinishButtonClick事件处理程序中执行此操作:

HttpContext.Current.Response.Redirect(Page.Request.Url.ToString());

这有额外的好处,它可以转到向导的第1步,所以我也不必这样做...... wiz.MoveTo(wiz.WizardSteps[0])

希望这可以帮助有同样问题的人。