ASP.NET: Viewstate und programmgesteuert Hinzufügen von Benutzersteuerelementen

8

Wenn Benutzersteuerelemente mithilfe von LoadControl (Zeichenfolgenpfad) programmgesteuert hinzugefügt werden, wenn sie im Seitenlebenszyklus des Benutzersteuerelements ihre Untersteuerelemente mit ihrem Ansichtszustand initialisiert?

Ich frage diese Frage, weil eines meiner Benutzersteuerelemente, das programmgesteuert geladen wird, ein TextBox-Steuerelement hat, das nicht von seinem Ansichtsstatus in PostBack beim Ereignis Page Load initialisiert / geladen wird (was bei einem normalen ASPX nicht der Fall ist) Seiten und damit meine Verwirrung). Insgesamt muss ich Werte aus dem Textfeld-Steuerelement abrufen.

Danke

    
burnt1ce 04.11.2009, 15:19
quelle

1 Antwort

11

ViewState wird vor dem Page_Load-Ereignis geladen. Wenn Sie möchten, dass Ihr Steuerelement mit ViewState zusammenarbeitet, müssen Sie es laden und vor dem Ereignis der Seite hinzufügen - normalerweise auf PreInit.

Die Referenz zum Lebenszyklus ist hier:
Ссылка

Lesen Sie die Beschreibung für das Ereignis Pre Load , das dem Laden der Seite unmittelbar vorausgeht:

  

Verwenden Sie dieses Ereignis, wenn Sie vor dem Load-Ereignis die Verarbeitung Ihrer Seite oder Ihres Steuerelements durchführen müssen.

     

Bevor die Page-Instanz dieses Ereignis auslöst, lädt sie den Ansichtszustand für sich selbst und alle Steuerelemente und verarbeitet dann alle in der Request-Instanz enthaltenen Postback-Daten.

Somit ist es schon vor der Ladezeit zu spät. Außerdem wird in der Beschreibung für das PreInit-Ereignis ausdrücklich erwähnt, dass es der Ort ist, "dynamische Steuerelemente zu erstellen oder neu zu erstellen".

    
Joel Coehoorn 04.11.2009, 15:21
quelle

Tags und Links