2012-03-28 6 views
1

Gegeben: Ich habe ein benutzerdefiniertes Serversteuerelement im Markup einer Aspx-Seite. Diese Steuerung erzeugt Kind Kontrollen in seiner CreateChildControls() Methode (zB ruft er Inhalte aus einer Datenbank und auf der Grundlage, dass die Inhalte dynamisch erzeugt entweder ein CheckBoxList oder ein RadioButtonList)Wie Abrufen der untergeordneten Steuerelemente eines dynamisch erstellten Steuerelements auf PostBack?

Jetzt verstehe ich, dass ich nicht die dynamisch erstellten Steuerelemente auf Postback, wenn ich nicht zugreifen kann fügen Sie sie erneut auf Page_Init oder Page_PreInit hinzu (gemäß here).

Meine Frage ist, Wie füge ich sie wieder explizit in Page_Init oder Page_PreInit, wenn sie nur noch einmal hinzugefügt werden, wenn wir um Render() auf jedem der benutzerdefinierten Serversteuerelemente aufrufen?

Ich bin sehr sicher, dass dies nicht ein einzigartiges Problem, so muss es ein Best-Practice-Weg, es zu tun ... Ich weiß nur nicht, was es ist:/

Antwort

1

Alles, was Sie brauchen, um Erstellen Sie benutzerdefinierte Serversteuerung in Pre_Init. Alles andere wird für Sie erledigt. Ich denke, Sie denken zu sehr darüber nach, was passiert und es ist verwirrend :)

Das benutzerdefinierte Steuerelement wird die untergeordneten Steuerelemente während des Pre_Init-Ereignisses wiedergeben. Sie werden nicht zweimal gerendert.

+0

Leider brauche ich in diesem Fall benutzerdefinierte Serversteuerelemente im Markup :(- würde das durch eine Ebene der Indirektion gelöst werden, zB habe ich ein FigurHeadCustomControl mit DBID = "123" im Markup, dann in Pre_Init I dynamisch Erstellen Sie eine Instanz von TheRealCustomControl (Übergabe der DBID durch), wobei TheRealCustomControl die untergeordneten Steuerelemente rendert? – Whisker

+0

Können Sie Ihren Code für das benutzerdefinierte Serversteuerelement posten? – TheGeekYouNeed

Verwandte Themen