中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 网页编程 -> .NET编程 -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ASP编程 · .NET编程
· PHP编程 · JSP编程
· CGI 专区
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
自定义ViewState的保存方式
作者:不详  来源:不详  发布时间:2006-8-14 8:46:55  发布人:chinazhan

 减小字体 增大字体

     大家都知道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);
   }
   }
  
  
  出处:.Net空间 BLOG
  
  
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .