【发布时间】:2012-04-24 06:03:29
【问题描述】:
在我的示例 asp.net 应用程序中,可以找到 here,我在 Page Init 上创建动态控件。 然后,如果用户在控件中输入文本并单击按钮,则应使用新值重新创建所有控件。
页面会用用户手动输入的数据覆盖第一行中填充的值。
关于如何在不更改为 html 控件或 MVC 的情况下防止这种情况的任何想法?
【问题讨论】:
在我的示例 asp.net 应用程序中,可以找到 here,我在 Page Init 上创建动态控件。 然后,如果用户在控件中输入文本并单击按钮,则应使用新值重新创建所有控件。
页面会用用户手动输入的数据覆盖第一行中填充的值。
关于如何在不更改为 html 控件或 MVC 的情况下防止这种情况的任何想法?
【问题讨论】:
视图状态在 Page_Init 事件中不可用。将创建移动到 Page_Load 事件。
【讨论】:
我最终做了一个解决方法来保持我自己的状态,我在其中添加了一个查询字符串变量来告诉我的代码是第一次加载还是回发。我使用强制清除控件的新变量重定向到同一页面。
另一种方法是在表单加载时检查 IsPostBack,并从我存储的对象值中再次替换 ViewState 分配的值。
仍然无法通过禁用页面上的 Viewstate 和控件来了解为什么它仍然会使用 viewstate 值填充我的动态控件。
【讨论】: