我有一个ASP.NET向导控件,我在其中循环返回wiz.MoveTo(wiz.WizardSteps[0])
到FinishButtonClick事件处理程序中向导的第一步。
我还希望清除步骤中所有控件的所有内容?
问题在于,由于viewstate,向导步骤中的控件记住了它们 上一次提交的价值?
我不能在控件上使用enableviewstate = false,因为他们需要能够记住步骤之间的状态(来回)?
仅在FinishButtonClick事件发生时清除所有控件的视图状态的最简单方法是什么?
谢谢!
答案 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])
。
希望这可以帮助有同样问题的人。