Referera till cachade kontroller som laddats in dynamiskt
Vi har tidigare gått igenom hur man refererar till instanser av User Controls i koden.
Om dessa kontroller är cachade så blir det lite svårare. Speciellt om man ska kunna sätta några properties på dem. Via OdeToCode hittade jag info hos Microsoft om hur man kan göra, och även exempelkod.
// Load the user control
Control control = LoadControl("control/MyControl.ascx");
placeHolder.Controls.Add(control);
// Set its properties (if possible)
ASP.MyControl uc = control as ASP.MyControl;
if (uc == null)
{
PartialCachingControl pcc = control as PartialCachingControl;
if (pcc != null) uc = pcc.CachedControl as ASP.MyControl;
}
if (uc != null) uc.MyProperty = "This is the value";
Control control = LoadControl("control/MyControl.ascx");
placeHolder.Controls.Add(control);
// Set its properties (if possible)
ASP.MyControl uc = control as ASP.MyControl;
if (uc == null)
{
PartialCachingControl pcc = control as PartialCachingControl;
if (pcc != null) uc = pcc.CachedControl as ASP.MyControl;
}
if (uc != null) uc.MyProperty = "This is the value";
Ps. I mitt exempel har jag med ASP-prefixet på klassen för kontrollen. Detta beror på att jag använder inline-code, läs mer om detta i tidigare nämnt inlägg.
Tags