我正在ASP.NET中创建一个多部分Web表单,它使用Panels执行不同的步骤,只显示当前步骤的Panel。在第1步,我有一个下拉列表,它使用Javascript函数通过“onchange”重新配置同一Panel中的一些字段。显然,由于客户端脚本仅影响DOM,当我转到步骤2然后返回到步骤1时,即使选择了相同的下拉选项,步骤1中的字段也会回到其原始配置。
在步骤之间存储面板的可视状态的好方法是什么?我考虑在页面加载时调用下拉列表的onchange函数,但这看起来很笨重。谢谢!
-
感谢快速解答 - 我想我会尝试向导,但AJAX解决方案听起来也很有趣。
答案 0 :(得分:1)
您可能会考虑使用ASP.Net向导控件 - 它会自动执行您尝试执行的许多操作。
答案 1 :(得分:1)
我建议你使用MultiView控件,让我们说在语义上更合适。然后将此数据存储在ViewState中。我写了一些类似的东西,它摇滚。
答案 2 :(得分:1)
我认为你最好的选择是将你所有的州保持在一个地方,或者根本不保持任何状态。您遇到的主要问题是将客户端状态与服务器端状态同步。
尝试使用javascript显示/隐藏面板,而不是回发,如果可能的话。如果没有,请使用一些ajax一旦选中它们就更新服务器端的值,而不是单击下一个/上一个按钮时。
否则,您可以使用类似ASP.Net Ajax Toolkit Tabs的内容来帮助转换。
希望有所帮助!