2008-09-17 13 views
0

System.Web.UI.WebControls.DropDownList'dan miras kalan bir denetim yazdım ve bu denetim için ön kodum yok, ancak yine de ayarlamak istiyorum OutputCache yönergesi. Bunu C# kodunda ayarlamak için herhangi bir yol var mı, bir öznitelik mi yoksa böyle bir şey mi? Özellikle umuyorumÖn kod içermeyen özel denetimlerde çıkış önbelleği yönergesi nasıl ayarlanır

Bu inanılmaz eski sorudur ama hala bir cevap layık olduğunu fark VaryByParam özelliğini

cevap

2

çoğaltmak mümkün.

Konuştuğunuz şey, Kullanıcı Denetimi değil, Özel Denetim. OutputCache ile ne yapmak istediğiniz sadece İçerik Önbelleği ile yapılabilir. Verileri alma ve DropDownList için bağlayıcı olan Kodunuzda

böyle bir şey yapmak:

 List<Object> listOfObjects = null; 
//assuming a List of Objects... it doesn't matter whatever type of data you use 
     if (Context.Cache["MyDataCacheKey"] == null) 
     { 
      // data not cached, load it from database 
      listOfObjects = GetDataFromDB(); 
//add your data to the context cache with a sliding expiration of 10 minutes. 
      Context.Cache.Add("MyDataCacheKey", listOfObjects, null, 
       System.Web.Caching.Cache.NoAbsoluteExpiration, 
       TimeSpan.FromMinutes(10.0), 
       System.Web.Caching.CacheItemPriority.Normal, null); 
     } 
     else 
      listOfObjects = (List<Object>)Context.Cache["MyDataCacheKey"]; 

     DropDownList1.DataSource = listOfObjects; 
     DropDownList1.DataBind(); 
+0

Çok teşekkür ederim! –

1
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); 
Response.Cache.SetCacheability(HttpCacheability.Server); 
Response.Cache.SetValidUntilExpires(true); 
+0

tepki nesne kalmaması, sadece ebeveyn Sayfa kontrolden bir özellik değildir' t Bu sadece tüm sayfa için önbellek ayarlarını değiştirir mi? –

İlgili konular