2、ViewState的概念
首先声明的是ViewState是一个对象,是一个StateBag(System.Web.UI)的实例,是一个定义在System.Web.UI.Control类里的protected property,类似于Session的用法,象一个Hashtable的键值对,通过键名来保存一些敏感数据。而这个对象参与了整个asp.net的生命周期,因此,对于这个对象牵扯到的知识点可能会有一些,对于他的使用也更加扑朔迷离起来。
你是否发现DropDownList在一个Button触发submit时,页面刷新后他的值仍能保持?为什么一个普通的select却没有这个功能呢?asp.net的服务器端控件做了什么而这么神气?让我们一起继续学习吧。
让我们查看一个aspx源代码的,你是否会对<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkxNjM0MzE3OA9kFgICAw9kFgICAQ9kFgICAQ8PZDIpAAEAAAD" />表示迷惑?这个东东是怎样产生的?他又完成着怎样的功能呢?
这个隐藏的域就是我们的核心ViewState所生成在页面为了保持服务器端控件状态,而由asp.net内核自动产生的。当服务器端控件状态发生改变时,将服务器端控件的状态序列化&反序列化,存到该隐藏域的value中,并在页面回发(postback)时恢复服务器端控件(以后简称控件)的状态。
to be continue^_^