2012-03-23 8 views
0

Ich habe eine einfache Klasse von vererben WebControl wie folgt:Laden WebControl in anderer benutzerdefinierter Steuerung: Load-Methode gebrannt nie

public class Instrument : WebControl 
{ 
    private SpecialItem myItem = new SpecialItem("ABC"); 

    protected override void Render(HtmlTextWriter output) 
    { 
     output.Write("<div>"); 
     myItem.RenderControl(output); 
     output.Write("</div>"); 
    } 
} 

Sobald die Steuerung zu einer Webseite hinzugefügt wird, die SpecialItem bekommt angezeigt, aber seine innere "Load" -Methode wird nie ausgelöst, was sie unbrauchbar macht. Wenn ich das SpecialItem-Steuerelement eigenständig verwende, funktioniert es wie erwartet. Wie mache ich die Lade-Methode aus dem SpecialItem-Steuerelement ausgeführt werden?

Antwort

2

Fügen Sie myItem zur Controls Sammlung Ihres benutzerdefinierten Steuerelements hinzu. Sie tun dies typischerweise (wie auch die untergeordneten Steuerelemente Instanziierung) durch die Methode überschrieben CreateChildControls:

protected override void CreateChildControls() 
{ 
    myItem = new SpecialItem("ABC"); 
    Controls.Add(myItem); 
} 
+0

, die den Trick tat, danke :) – jdecuyper

Verwandte Themen