快速业务通道

ASP.NET重写ViewState的存储目的地,以提高页面性能

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
Columns.Add("id", typeof (int));
      table.Columns.Add("name", typeof (string));

      for (int i = 0; i < 1000; i++)
      {
        DataRow row = table.NewRow();
        row["id"] = i;
        row ["name"] = "student_" + i.ToString();
         table.Rows.Add(row);
      }
       DataGrid1.DataSource = table;
      DataGrid1.DataBind ();
    }

#region Web ′°ì?éè???÷éú3éμ?′ú??

????????protected override void OnInit(EventArgs e)
????????{
????????????InitializeComponent();
???????????? base.OnInit(e);
????????}

????????private void InitializeComponent()
????????{
???????????? this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler (this.DataGrid1_PageIndexChanged);
????????????this.Load += new System.EventHandler(this.Page_Load);

????????}

????????#endregion

????????protected override void SavePageStateToPersistenceMedium(object viewState)
????????{
????????????LosFormatter format = new LosFormatter();
???????? ????StringWriter writer = new StringWriter();
???????????? format.Serialize(writer, viewState);
????????????string vsRaw = writer.ToString();
????????????byte[] buffer = Convert.FromBase64String(vsRaw);
????????????string vsText = Encoding.ASCII.GetString(buffer);

????????????object v = Cache[PageKey];
????????????if (v == null)
???????????????? Cache.Insert(PageKey, vsText);
????????????else
???????????? ????Cache[PageKey] = vsText;
????????}

????????public string PageKey
????????{
????????????get { return Session.SessionID + "_page_SaveViewStateToOther_aspx"; }
????????}

????????protected override object LoadPageStateFromPersistenceMedium()
????????{
???????????? object s = Cache[PageKey];
????????????if (s != null)
?????? ??????{
????????????????string state = s.ToString();
?????? ??????????byte[] buffer = Encoding.ASCII.GetBytes(state);
?????? ??????????string vsRaw = Convert.ToBase64String(buffer);
???????? ????????LosFormatter formatter = new LosFormatter();
???????????? ????return formatter.Deserialize(vsRaw);
????????????}
???? ????????return null;
????????}

????????private void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
????????{
????????????DataGrid1.CurrentPageIndex = e.NewPageIndex;
????????????Bind();
????????}
????}
}

??óúêμ?êμ?ó|ó?£?è?1?òa???¨?ú????3ìDò?Dó|ó?′?·?°?£??ò ê1ó?ò???í¨ó?μ?ò3???ùàà£??ú???Dêμ??′??ú??±è??o?êê?£

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号