none
缓存的用户控件数据丢失 RRS feed

  • 问题

  • 设置用户控件的缓存状态

    <%@ OutputCache Duration="303" Shared="true" VaryByParam="None" %>
    

    可是有些时候 ,会出现这个用户控件里面的数据查询部分丢失了(好像没有把数据绑定到控件一样,该部分是空白的),只有 html部分显示在调用页面中。绑定数据的时候没有使用try..catch。

    后来别人让我动态加载(以编程方式加载)用户,我也照做了,可还是存在那样的问题。我用的是虚拟主机。

    1.是服务器限制内存原因?
    2.是框架的Bug?
    3.编写的程序有问题?


    欧阳无毒,天下太平
    2010年4月28日 2:06

答案

  • 有没考虑使用代码级别的Cache,似乎你的那种方式是页面级别的。

    如果可以考虑就采用如下方式:

    Cache["xx"]=object;

     然后绑定的时候判断上面是否为null,如果为null则重新读取数据,否则直接拿上面的绑定。


    Microsoft Online Community Support
    2010年4月29日 6:17

全部回复

  • 如果我修改下web.config,让页面重新启动,用户控件的数据又会立刻显示
    欧阳无毒,天下太平
    2010年4月28日 2:07
  • 缓存就是这样的 

    可以判断缓存是否null 如果是  重新绑定数据


    77138191 .net与asp.net qq群 9861961 silverlight群
    2010年4月28日 4:14
  • 如果是在页面中设置

     

    OutputCache

    怎么判断缓存是否为空啊?


    欧阳无毒,天下太平
    2010年4月28日 5:00
  • 有没考虑使用代码级别的Cache,似乎你的那种方式是页面级别的。

    如果可以考虑就采用如下方式:

    Cache["xx"]=object;

     然后绑定的时候判断上面是否为null,如果为null则重新读取数据,否则直接拿上面的绑定。


    Microsoft Online Community Support
    2010年4月29日 6:17
  • 我一般都是用DataReader直接绑定数据到Repeater,没有使用如DataSet这种数据,所以不好缓存单个数据项。我缓存的单个数据项基本是那种共有的、且更新慢的数据,比如文章的分类。
    欧阳无毒,天下太平
    2010年4月30日 15:44
  • 你好,建议还是使用Cache,比较容易控制。
    邹俊才
    2010年5月9日 17:21
    版主
  • 有时候的确是这样,我也遇到过,建议换个办法吧

    2010年5月10日 1:41