Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是基于ASP.NET中视图状态的事件_C#_.net_Asp.net - Fatal编程技术网

C# 是基于ASP.NET中视图状态的事件

C# 是基于ASP.NET中视图状态的事件,c#,.net,asp.net,C#,.net,Asp.net,我在某处读到ASP.NET的事件是基于ASPX页面的视图状态的。提交控件的值与其视图状态的值匹配,如果发现任何差异,则调用相应的事件 但我的问题是: “当事件确实基于视图状态时,比使用EnableViewState=false禁用视图状态时触发事件的原因更重要。” 谢谢, Guru.ViewState只是与ASP.NET事件偶然相关。更好的措辞是,提交控件的值与重新构建页面后找到的相应控件相匹配。页面将根据ViewState和代码前端中定义的页面原始布局的组合进行重新构造。(更不用说可以在服务器

我在某处读到ASP.NET的事件是基于ASPX页面的视图状态的。提交控件的值与其视图状态的值匹配,如果发现任何差异,则调用相应的事件

但我的问题是: “当事件确实基于视图状态时,比使用EnableViewState=false禁用视图状态时触发事件的原因更重要。”

谢谢,
Guru.

ViewState只是与ASP.NET事件偶然相关。更好的措辞是,提交控件的值与重新构建页面后找到的相应控件相匹配。页面将根据ViewState和代码前端中定义的页面原始布局的组合进行重新构造。(更不用说可以在服务器端在
CreateChildControls
virtual方法中在您自己的页面/控件或第三方自定义控件中创建控件)

至于你的问题,我猜触发事件是因为触发事件的控件不是基于状态的——它们是在代码前端静态定义的,并且总是可用的


相反,有些控件是动态创建的。例如,如果将
中继器
项目模板
结合使用,则可以在项目模板内放置一个按钮。中继器中的项目取决于其数据源中的值,而不是代码前端。因此,如果在这种情况下禁用ViewState,您确实会弄糟事件处理。

如果您真的想了解ViewState,请阅读本文

这是官方的@msdn

我能说的是。。。尝试浏览我刚才共享的第一个链接。。。到那篇文章的结尾,你的所有疑问都会得到解答。我认为这是关于这个问题的最好的文章。
简单的回答是。。。事件将始终存在,因为页面生命周期应该是这样的。。。按特定顺序!这与viewstate处于打开或关闭状态无关

有你所指文章的链接吗?