自定义ViewState的保存方式
来源:互联网 发布:鹦鹉螺雾化芯diy数据 编辑:程序博客网 时间:2024/06/10 04:08
在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);
}
}
出处:.Net空间 BLOG
- 自定义ViewState的保存方式
- 自定义ViewState的保存方式
- 自定义ViewState的保存方式
- ASP.net:自定义ViewState的保存方式
- 最简单的自定义控件(4)--使用Viewstate最为属性的内部保存
- 关于NSUserDefaults保存自定义变量的方式
- 用ViewState保存对象!
- ViewState 保存状态
- 服务器端保存viewstate
- 自定义控件(9)控制控件属性的保存方式PersistenceMode
- GridView CheckBox当翻页时保存选中的项(viewstate)
- 保存页面数据的场所——Hidden、ViewState、ControlState
- HiddenField/ViewState/ControlState__保存数据的另一个场所
- 特别的ViewState存储方式(降低客户端的压力)
- 将ViewState保存到其他地方
- session的保存方式
- 页面瘦身之压缩viewState和保存viewState到服务器
- ViewState和用户自定义数据类型
- 如何让.Net控件在设计时InitializeComponent()中不生成相关代码
- .NET2.0泛型在实际开发中的一次小应用
- 在ASP.NETAtlas中创建自定义的Transformer
- 学习一下.netframework中有关安全的内容
- 对ASP.NET2.0下面的新控件的困惑
- 自定义ViewState的保存方式
- DataGrid的全选/取消全选控制(CheckBox)
- 数据绑定控件再ASP.NET1.X和ASP.NET2.0的区别
- 怎样才能判断出用户上传的文件中没有包含木马以及恶意病毒之类
- aspx页面中标题单点解决方案
- 为XPath自定义函数(因为XPath1.0的函数非常有限)
- 如何在web.config中建立公用的的数据库连接
- 利用WebRequest来实现模拟浏览器通过Post方式向服务器提交数据
- ASP.NET2.0正式版中无刷新页面的开发(示例代码的补充)