C# 是基于ASP.NET中视图状态的事件
我在某处读到ASP.NET的事件是基于ASPX页面的视图状态的。提交控件的值与其视图状态的值匹配,如果发现任何差异,则调用相应的事件 但我的问题是: “当事件确实基于视图状态时,比使用EnableViewState=false禁用视图状态时触发事件的原因更重要。” 谢谢,C# 是基于ASP.NET中视图状态的事件,c#,.net,asp.net,C#,.net,Asp.net,我在某处读到ASP.NET的事件是基于ASPX页面的视图状态的。提交控件的值与其视图状态的值匹配,如果发现任何差异,则调用相应的事件 但我的问题是: “当事件确实基于视图状态时,比使用EnableViewState=false禁用视图状态时触发事件的原因更重要。” 谢谢, Guru.ViewState只是与ASP.NET事件偶然相关。更好的措辞是,提交控件的值与重新构建页面后找到的相应控件相匹配。页面将根据ViewState和代码前端中定义的页面原始布局的组合进行重新构造。(更不用说可以在服务器
Guru.ViewState只是与ASP.NET事件偶然相关。更好的措辞是,提交控件的值与重新构建页面后找到的相应控件相匹配。页面将根据ViewState和代码前端中定义的页面原始布局的组合进行重新构造。(更不用说可以在服务器端在
CreateChildControls
virtual方法中在您自己的页面/控件或第三方自定义控件中创建控件)
至于你的问题,我猜触发事件是因为触发事件的控件不是基于状态的——它们是在代码前端静态定义的,并且总是可用的
相反,有些控件是动态创建的。例如,如果将
中继器
与项目模板
结合使用,则可以在项目模板内放置一个按钮。中继器中的项目取决于其数据源中的值,而不是代码前端。因此,如果在这种情况下禁用ViewState,您确实会弄糟事件处理。如果您真的想了解ViewState,请阅读本文
这是官方的@msdn
我能说的是。。。尝试浏览我刚才共享的第一个链接。。。到那篇文章的结尾,你的所有疑问都会得到解答。我认为这是关于这个问题的最好的文章。
简单的回答是。。。事件将始终存在,因为页面生命周期应该是这样的。。。按特定顺序!这与viewstate处于打开或关闭状态无关 有你所指文章的链接吗?