How do I cache a composite server control?

99 views Asked by At

How would I use the system caching object, HttpContext.Current.Cache to store a custom server control in the cache?

Currently I have code that looks like this:

            string adxkey = string.Format("adxdependency:document:{0}", this.SearchRootDocumentKey);
        System.Web.Caching.CacheDependency cd = new System.Web.Caching.CacheDependency(null, new string[] { adxkey });
        HttpContext.Current.Cache.Insert(adxkey, this, cd);   

This is located int he OnInit method. My questions are:

  • Is there a better method to place the caching code in?
  • Can you cache a server control by passing a reference to it as in above? Or do I need to cache the rendered html?

An example of how to programmatically cache a server control would be greatly appreciated! Thanks.

1

There are 1 answers

0
Payson Welch On BEST ANSWER

The short answer for this is that you need to add your caching attriutes to a page or user control, not a server control. I have written a blog post about how to do this, you can find it here:

http://www.dirigodev.com/blog/post/AspNET-Caching-101-Part-2-Cache-Key-Dependencies.aspx