压缩动态页面的ViewState

    #region 压缩动态页面的ViewState

    protected override void SavePageStateToPersistenceMedium(object state)
    {
        LosFormatter formatter = new LosFormatter();
        StringWriter writer = new StringWriter();
        formatter.Serialize(writer, state);
        string viewState = writer.ToString();
        byte[] data = Convert.FromBase64String(viewState);
        byte[] compressedData = ViewStateHelper.Compress(data);
        string str = Convert.ToBase64String(compressedData);
        ClientScript.RegisterHiddenField("__MYVIEWSTATE", str);
    }

    protected override object LoadPageStateFromPersistenceMedium()
    {
        string viewstate = Request.Form["__MYVIEWSTATE"];
        byte[] data = Convert.FromBase64String(viewstate);
        byte[] uncompressedData =
         ViewStateHelper.Decompress(data);
        string str = Convert.ToBase64String(uncompressedData);
        LosFormatter formatter = new LosFormatter();
        return formatter.Deserialize(str);
    }
    #endregion

posted @ 2010-09-20 13:39  清凉的风/2.0  阅读(176)  评论(0编辑  收藏  举报