Web forms-Benutzersteuerelemente - LoadControl in pre-init oder page_load?
In der MSDN-Seite lifecycle-Referenz es besagt, dass die pre-init wird verwendet, um "Erstellen oder neu erstellen, dynamische Steuerelemente".
Jedoch anderswo auf der MSDN-Website, ein Beispiel impliziert, dass ein dynamisches user control geladen werden soll, in der Page_Load -
Ist das ein Widerspruch? Oder ist pre-init verwendet, nur für standard aspx-controls?
Was habe ich verpasst 🙂
Edit:
So oder so funktioniert, aber es ist vermutlich etwas zugunsten der einen Ansatz über den anderen.
(WebUserControl1 ist ein UserControl mit einem einfachen label-Eigenschaft, SomeProperty)
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
WebUserControl1 wc1 = LoadControl(@"~\WebUserControl1.ascx") as WebUserControl1;
wc1.SomeProperty = "Hello World";
Controls.Add(wc1);
}
protected void Page_Load(object sender, EventArgs e)
{
WebUserControl1 wc1 = LoadControl(@"~\WebUserControl1.ascx") as WebUserControl1;
wc1.SomeProperty = "Hello World";
Controls.Add(wc1);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort ist es hängt davon ab, auf Ihr benutzerdefiniertes Steuerelement. Wenn das Steuerelement nicht etwas brauchen, um passieren, bevor page_load, dann können Sie voran gehen und hinzufügen des Steuerelements beim laden der Seite, wenn Sie code in das Benutzersteuerelement, das führt zu einem früheren Zeitpunkt, dann sollten Sie Ihre Steuerung in einem früheren Stadium als in dem MSDN-Artikel suggeriert.
Was genau versuchen Sie zu tun? Sie werden versuchen, die übergabe von Informationen an den Benutzer zu kontrollieren? Wenn dem so ist, können Sie übergeben die Informationen an die Benutzer-Steuerelement im page_load-Ereignis aus der übergeordneten Seite.