if (Cache["News"] != null)
        {
           GridView1.DataSource = Cache["News"] as IList<Model.NewsInfo>;
          }
        else
      {
         
         Cache.Insert("News", News, null, DateTime.Now.AddDays(1),Cache.NoSlidingExpiration, CacheItemPriority.High, null);
            GridView1.DataSource = News;
     }
        GridView1.DataBind();如果 用户新添加一条新闻 其不是要一天才显示出来??? 大家有没有什么好的办法 添加后 立刻显示出来(绑定) 不知道我理解Cache是否有些偏差.大家多提提意见 见人有分 

解决方案 »

  1.   

    添加一条 重新执行一次  GridView1.DataBind(); 
      

  2.   

    三种ASP.NET缓存过期策略。永不过期。直接赋值缓存的Key和Value即可绝对时间过期。DateTime.Now.AddSeconds(10)表示缓存在10秒后过期,TimeSpan.Zero表示不使用平滑过期策略。变化时间过期(平滑过期)。DateTime.MaxValue表示不使用绝对时间过期策略,TimeSpan.FromSeconds(10)表示缓存连续10秒没有访问就过期。
      

  3.   

    可以这样,成功添加到数据后,把Cache["News"]重新设置。比如:
    if(添加成功)
    {
       //查询数据库并返回数据列表;
       Cache["News"]=null;
       Cache["News"]=返回的数据列表;
       this.DisplayGridData();)
    private void DisplayGridData()
    {
       if (Cache["News"] != null) 
       { 
              GridView1.DataSource = Cache["News"] as IList <Model.NewsInfo>; 
       } 
       else 
       { 
            
            Cache.Insert("News", News, null, DateTime.Now.AddDays(1),Cache.NoSlidingExpiration, CacheItemPriority.High, null); 
            GridView1.DataSource = News; 
        } 
        GridView1.DataBind(); 
    }
      

  4.   

    哦  试下看行不 thanks
      

  5.   

    后台添加的时候操作cache,不行么
      

  6.   

    结帖!!给分了 thanks da jia