ASP.net:自定义ViewState的保存方式
来源:互联网 发布:淘宝自定义全屏 编辑:程序博客网 时间:2024/06/05 20:55
大家都知道Asp.Net中使用ViewState来在客户端与服务端之间保存页面中的信息及用户自定义的信息.
在2.0之前的版本中,ViewState是保存在页面中的隐藏控件中的:__VIEWSTATE
我们无法改变ViewState的保存方式及保存位置.
现在在2.0中,Asp.Net开放了这个功能,允许我自定义ViewState的保存位置.
在2.0的Page类中新增了一个属性:PageStatePersister.
我们可以重写这个属性来实现自定义ViewState的保存.这个属性要返回一个继承自PageStatePersister类的子类的一个实例.
2.0中默认提供了两种保存方法:一个是保存在页面中(HiddenFieldPageStatePersister ),另外一个是保存在Session中(SessionPageStatePersister ).
下面的代码重写了PageStatePersister属性,将ViewState保存到Session中:
protected override PageStatePersister PageStatePersister
{
get
{
return new SessionPageStatePersister(this);
}
}
除了这两种默认的保存方式外,我们可以继承PageStatePersister类,来实现自己的保存方式.
以下的代码演示了如果将ViewState保存到文件中:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
/**//// <summary>
/// CWingViewState 的摘要说明
/// </summary>
public class CWingViewState : PageStatePersister
{
public CWingViewState(Page page):base(page)
{
}
public override void Load()
{
ReadFile();
}
public override void Save()
{
WriteFile();
}
private void WriteFile()
{
FileStream file = File.Create(@"C:/CustomerViewState.CW");
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(file, base.ViewState);
file.Flush();
file.Close();
}
private void ReadFile()
{
FileStream file = File.OpenRead(@"C:/CustomerViewState.CW");
BinaryFormatter bf = new BinaryFormatter();
base.ViewState = bf.Deserialize(file);
}
}
具体的页面中:
protected override PageStatePersister PageStatePersister
{
get
{
return new CWingViewState(this);
}
}
- ASP.net:自定义ViewState的保存方式
- 自定义ViewState的保存方式
- 自定义ViewState的保存方式
- 自定义ViewState的保存方式
- asp.net 的viewstate
- ASP.Net ViewState的实现
- ASP.Net ViewState的实现
- ASP.Net ViewState的实现
- ASP.Net ViewState的实现
- ASP.Net ViewState的实现
- ASP.NET ViewState的介绍
- ASP.NET,保存信息的内置对象,如Application,Session,Cookie,Viewstate和Cache等
- ASP.NET AJAX Advance Tips & Tricks (2) 动态创建Rating控件不能保存ViewState的解决方案
- 让ViewState 保存于服务器端文件 (asp.net C#)
- 让ViewState 保存于服务器端文件 (asp.net C#)
- ASP.net状态保存机制及ViewState 工作原理
- 真正理解ASP.NET的ViewState (Truly Understanding ViewState)
- 真正理解ASP.NET的ViewState (Truly Understanding ViewState)
- .NET的3C:CTS、CLS和CLR 以及 IL
- wm下拦截指定内容或电话号码的短信
- 转自BMY 海量数据的处理
- [转]关于团队文化
- ASP.NET 2.0的视图状态持久性机制
- ASP.net:自定义ViewState的保存方式
- sprintf,你知道多少
- FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用
- [转]SourceSafe中的权限管理
- 【视频】配置信息管理 的 使用方法(五):配置程序之列表、分页控件、按钮
- 【视频】配置信息管理 的 使用方法(四):功能节点维护
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 【视频】配置信息管理 的 使用方法(二):建表、添加元数据
- RTP的使用