我有一个父页面 里面有 4个 用户控件,分别显示 数据库查询数据,父页面是需要接受一个参数的 ClassId,传给4个用户控件,来显示不同的数据,
传值方法是:
   用户控件分别有ClassId 的这个公共属性,父页面在pageload 的时候,分别给 uc1.ClassId=Request.QueryString["ClassId"];uc2.ClassId=Request.QueryString["IClassId"],... ;
   现在想把用户控件里面的显示数据缓存起来 如何做,我试验了一下:
   在用户控件里面 添加:
   <%@ OutputCache Duration="60" VaryByControl="ClassId" %> 或者<%@ OutputCache Duration="60"  VaryByParam="ClassId" %>   当打开父页面的时候 运行到uc1.ClassId=Request.QueryString["ClassId"];的时候 总是提示“ 未将对象引用设置到对象的实例”请问,我这种情况 怎么做数据缓存?

解决方案 »

  1.   

    可以将抓到的数据缓存
    FYR:
    DataSet dsTest = new DataSet();
    Cache.insert("test",dsTest);
      

  2.   

    这样不行的,当参数变了, cache("test") 的话 就会显示的是 不是当前参数的数据,而是前一个参数的缓存?
    有人知道吗???
      

  3.   

    “当打开父页面的时候”,页面的url上有ClassId参数吗?
      

  4.   

    可能是参数没传过来吧
    要判断一下if(Request.QueryString["ClassId"]!=null)
    {
      uc1.ClassId=Request.QueryString["ClassId"].ToString();
    }