asp.net服务器控件的视图状态viewstate

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net服务器控件的视图状态viewstate相关的知识,希望对你有一定的参考价值。

asp.net服务器控件状态视图究竟是保存的什么信息,,<asp:TextBox ID="TextBox1" EnableViewState="false" runat="server" OnLoad="TextBox1_Load">aaaaaaaaaaaaaaaa</asp:TextBox> 比如这个,我禁用这个控件的状态视图,,在服务器端通过TextBox1.text 也能取到相应的值(感觉跟没有禁用状态视图的效果一样的)。。。。所以我不明白了viewstate究竟保存了控件的什么信息。。。

参考技术A 首先要明白的是,当你按了类似Button按钮,将页面重新发给服务器后,服务器处理你的页面的过程是:它会重新初始化你第一次请求的那个页面,就是说尽管你第一次请求页面后对这个页面做了许多其他的操作,比如说该页面有让用户随意转换文章字体的功能,你按了个标签使文章字体改变了,之后又有操作按了Button按钮将页面回发给服务器,让它处理你的Button事件,此时服务器重新初始化你的那个页面,该页面只是你第一次请求时的状态(即未改变文章字体的状态),但是为何服务器处理了你的Button事件,将网页回发给你后,文章的字体的确还是你之前自定义的字体呢?不是初始化页面的时候只是回到你第一次请求的状态吗?这就是viewstate的功能。在服务器初始化页面后,它会读取隐藏在你回发的页面中的viewstate,从中读取相应信息,在服务器端将文章字体变为你当初自定义的字体。
你的例子中,当在TextBox中输入文字后,传给服务器,服务器当然还能获得你的输入,唯一不同的是,如果你禁用了视图状态,那么当页面再次发给你的时候,你的TextBox就是空的了。而若没有禁用,当页面再次回发给你的时候,TextBox中仍然保留你上次的输入值。

Atitit 视图状态ViewState)的原理与管理

 

 

 

Atitit  视图状态ViewState)的原理与管理

 

1.1. 视图状态ViewState的实现隐藏字段url参数1

1.2. Asp.net的视图状态管理1

2. 1

2.1. H5的视图状态管理1

2.2. Java Jspphp的视图状态管理1

2.3. Cs桌面程序的视图状态管理1

3. 参考1

 

1.1. 视图状态ViewState的实现隐藏字段url参数

 

1.2. Asp.net的视图状态管理

 

1.3. H5的视图状态管理

读取url参数,客户端req对象获取。

Xxxx.html?txtCtrl1=123&nameTxt=aaaa

 

通过js回复视图状态。

读取url参数,遍历控件,绑定。可以有form插件帮忙。。

 

这块玉编辑界面读取差不多,唯一区别是读取url,编辑界面通过ajax读取后端json,用来回复状态。。

 

1.4. Java Jspphp的视图状态管理

一般使用req对象读取。

1.5. Cs桌面程序的视图状态管理

桌面程序是默认有状态的,一般无需做特别的视图状态管理。

2. 参考

sessionPageState与视图状态存储 - 猴健居士 - 博客园.html

6.10 视图状态和控件状态的总结 - 51CTO.COM.html

视图状态概述.html

ASP.NET状态管理之十一(视图状态ViewState) - aierong - 博客园.html

ASP.NET状态管理之十一(视图状态ViewState) - aierong - 博客园.html

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

 

 

以上是关于asp.net服务器控件的视图状态viewstate的主要内容,如果未能解决你的问题,请参考以下文章

转载ViewState的用法

ASP.NET中,HiddenField隐藏控件的用法

viewstate

asp.net服务器控件刷新无法保存住值怎么解决?

asp.net c# MVC:没有 ViewState 我该如何生活?

ASP.NET,用户控件和 ViewState 丢失了正确的数据,尝试进入用户控件事件