• 将视图状态存入数据库(3)


    昨天有朋友说,使用PageAdapter要比BasePage好,使用PageAdapter便于统一管理和配置,这次我用PageAdapter实现同样的效果,同时也对原来的代码也做了一些修改,使之性能有所提升。
    读取控件状态,不是直接从数据库读取,而是先去状态池中查找,如果状态池中不存在,我们再访问数据库。
    保存的过程和读取的过程相对应,控件状态先保存至状态池,当状态池满时,将其中的部分元素保存只数据库。
    状态池中的元素都是未序列化的,这样就避免了序列化和反序列化带来的性能问题。

    Code

    下边是继承PageAdapter的类,当页面的EnableViewState为true时,调用我们自定义的类(DataBasePageStatePersister),否则调用基类的实现。

    Code

    我们还需要在应用程序浏览器目录App_Browsers,然后在其中建立浏览器文件,文件的内容如下:
    <!--
    可在 <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers 中找到现有的浏览器定义
    -->
    <browsers>
      
    <browser refID="Default" >
        
    <controlAdapters>
          
    <adapter
              
    controlType="System.Web.UI.Page"
              adapterType
    ="JianCaiWeb.Utils.DataBasePageAdapter" />
        
    </controlAdapters>
      
    </browser>
    </browsers>
  • 相关阅读:
    js怎样生成json的数据
    JS中生成与解析JSON
    [转]js动态创建json类型
    handlebars模板库的资源
    一指流沙,倾覆了谁的年华?
    c# const与readonly 关键字的比较
    静态类和静态构造函数
    编写跨浏览器兼容的 CSS 代码的金科玉律
    mysql 分页sql
    EF报LINQ to Entities 不识别方法“Web_JZRepository.Models.copy_materials_details get_Item(Int32) ”,因此该方法无法转换为存储表达式。
  • 原文地址:https://www.cnblogs.com/fengfeng/p/1183274.html
Copyright © 2020-2023  润新知