我在网上搜索了答案,发现大多数变量都保存在 page.prerender 事件的视图状态中。然后变量的值在页面加载事件中被设置回来。
但是,当我在预渲染或加载事件中将变量保存在视图状态中时,视图状态在代码隐藏中动态更改后如何存储该变量的值?
假设,页面加载后,用户单击了一个按钮,该按钮更改了 onClick 事件中变量的值。然后,由于单击按钮而引发了回发事件。根据我的说法,如果变量仅在预渲染事件中保存在视图状态中,则新值应该已丢失并且无法保存在视图状态中。因为在回发时,预渲染事件不会触发,并且该值无法保存。
我不应该在回发事件发生之前将变量保存在视图状态中吗?
我错了吗?如果是这样,如果视图状态保存在预渲染事件中,视图状态如何存储变量的新值?
谢谢您提前的回答..
我怀疑你对保存 ViewState 感到困惑,即。将内存中的 ViewState 集合序列化为字符串表示形式或可以轻松序列化的中间对象,并使用其常规访问器方法实际修改内存中的 ViewState 对象。
您可能听到的是方法在之后调用预渲染事件。但这与你什么时候修改没有什么关系contentsViewState 集合的。
结帐点7. 预渲染对象 and 8. 视图状态已保存在文章中ASP.NET 页面生命周期 https://web.archive.org/web/20111119143059/http://www.15seconds.com:80/issue/020102.htm。有一个好的MSDN https://learn.microsoft.com/en-us/previous-versions/dotnet/articles/ms972976(v=msdn.10)文章也涉及到这一点。
(source: microsoft.com http://i.msdn.microsoft.com/dynimg/IC152667.gif)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)