开发者

How to use Partial Caching with dynamically created controls?

开发者 https://www.devze.com 2023-01-26 23:09 出处:网络
I have a control declared with PartialCaching attribute, like this: [PartialCaching(60 * 60 * 12)] public class MyControl : Control {

I have a control declared with PartialCaching attribute, like this:

[PartialCaching(60 * 60 * 12)]
public class MyControl : Control {
    // control contents ...开发者_JAVA百科
}

but I create it in code, using new keyword. The problem is that if the control is in cache I must not create the control again the next time, but I need to add the control to the page hierarchy, otherwise nothing is going to be rendered. What I need in pseudo-code is something like this:

if (myControlIsCached) {
    var ctl = ???; // something that represents the cached control
                   // e.g. could be: new LiteralControl( myControlCachedData )
    this.Controls.Add( ctl );
}
else {
    var ctl = new MyControl();
    // setup control ...
    this.Controls.Add( ctl );
}

What is the correct way of doing it?

Thanks people.


I believe you are looking to do something like this:

Control possiblyCachedControl = LoadControl("path to control");
MyControlType control = null;
if (possiblyCachedControl is MyControlType)
{
    //control wasn't cached
    control = possiblyCachedControl as MyControlType;
}
else if (possiblyCachedControl is PartialCachingControl && ((PartialCachingControl)possiblyCachedControl).CachedControl != null)
{
    //control was cached
    control = (MyControlType)((PartialCachingControl)possiblyCachedControl).CachedControl;
}
if (control != null)
{
    //use the control
}
0

精彩评论

暂无评论...
验证码 换一张
取 消