Kaneboy.Web.ViewState使用说明
(一)概述
Kaneboy.Web.ViewState提供了以多种方式保存ViewState的能力。ASP.NET引擎默认是将ViewState作为页面上一个Hidden Field保存到页面上,但使用Kaneboy.Web.ViewState,我们可以改变ViewState的保存方式。
(二)使用步骤说明:
1、将Kaneboy.Web.ViewState的所有三个dll文件拷贝到正确的Web程序的/bin目录中。
2、修改web.config,在其中增加如下所示的配置节:
<configuration>
<configSections>
<section name="viewStateManagement" type="Kaneboy.Web.ViewState.ViewStateManagementConfig, Kaneboy.Web.ViewState" />
</configSections>
<viewStateManagement>
<handler mode="on" type="Kaneboy.Web.ViewState.SessionViewStateHandler, Kaneboy.Web.ViewState" />
</viewStateManagement>
</configuration>
其中<viewStateManagement>节点下的<Handler>节点用来指示使用哪种方式来保存ViewState,以及是否启用自定制的ViewState保存方式。
3、接管页面上默认的ViewState保存方式。你可以选择下面的两种方法之一:
(1)将要改变ViewState保存方式的页面的父类从默认的System.Web.UI.Page改为Kaneboy.Web.ViewState.ViewStatePageBase。
通常一个好的Web程序设计会让系统中所有的页面继承自一个自定义公共基页面类(而不是继承自默认的System.Web.UI.Page),以实现某些自定制的功能(比如所有页面错误的捕捉等等),如果有这样的设计,那么您只需要将这个自定义的公共基页面类继承自Kaneboy.Web.ViewState.ViewStatePageBase即可。
(2)在页面的代码中,override下面所示的两个方法:
protected override void SavePageStateToPersistenceMedium(object viewState)
{
Kaneboy.Web.ViewState.ViewStateManagement.SaveViewState(this, viewState);
}
protected override object LoadPageStateFromPersistenceMedium()
{
return Kaneboy.Web.ViewState.ViewStateManagement.LoadViewState(this);
}
(三)可以使用的ViewState保存方式
在上面提到的配置文件中<viewStateManagement>节点下的<Handler>节点的type属性用来指定使用哪种方法来保存ViewState,可以选择的方法包括:
(1) type="Kaneboy.Web.ViewState.CompressedHiddenFieldViewStateHandler, Kaneboy.Web.ViewState"
将ViewState压缩后保存到页面的一个Hidden Field中。
(2) type="Kaneboy.Web.ViewState.SessionViewStateHandler, Kaneboy.Web.ViewState"
将ViewState保存在服务器的Session中。
(3) type="Kaneboy.Web.ViewState.AspNet1_1ViewStateHandler, Kaneboy.Web.ViewState"
系统默认的ViewState保存方式,即将ViewState保存在一个名字为“__VIEWSTATE”的Hidden Field中。不推荐使用这个方法。
(四)如何扩展自定制的ViewState保存方法
通过继承Kaneboy.Web.ViewState.ViewStateHandlerBase,并重写其SaveViewState和LoadViewState方法即可,这两个方法分别用来保存ViewState和载入ViewState。