2009-04-08 10 views

Antwort

1

Page_Load ist gut zum Ändern der Einstellungen der Steuerung.

EDIT: Dieser Code getestet und funktioniert:

// in page_load event : 
validator.ControlToValidate = textboxToValidate.ID; 

Aber wenn Sie Ihre Validatoren nach einem Ereignis dynamisch zu erzeugen, könnte Problem unterschiedlich sein.

+0

Seitenlade scheint nicht für mich zu arbeiten, ist es nicht zu spät im Seitenlebenszyklus? – Blankman

+0

Nein, es ist der allgemeine Ort, um Eigenschaften zu setzen, lassen Sie mich es testen, ich werde das Ergebnis schreiben. – Canavar

+0

Sie können jederzeit ein Steuerelement hinzufügen. Sie müssen nur sicherstellen, dass die Steuerungshierarchie während der nachfolgenden Postbacks gleich ist. – Daniel

1

Das hängt davon ab, warum Sie es hinzufügen müssen. Wenn es immer da sein wird, dann ist OnInit ein guter Ort.

Wenn Sie es erst hinzufügen müssen, nachdem eine Aktion aufgetreten ist, möchten Sie dies tun, nachdem LoadViewState aufgerufen wurde, so dass Sie es hinzufügen können, sobald Sie es zum ersten Mal hinzufügen. Zum ersten Mal hinzufügen, wahrscheinlich werden Sie es wegen eines Post-Back-Ereignisses tun wollen, also könnten Sie es in Ihrem Event-Handler hinzufügen.

Ich würde vorschlagen, einen Platzhalter zum Steuerelement an der Stelle hinzufügen, wo Sie dieses Steuerelement möchten. Dann fügen Sie das Steuerelement hinzu, wenn es erforderlich ist. Sie sollten dann einige Informationen in ViewState speichern, um zu wissen, dass Sie das Steuerelement hinzugefügt haben. Sie können LoadViewState dann überschreiben und das Steuerelement dort hinzufügen, wenn es benötigt wird.

Wenn Sie den Validator nur benötigen, wenn das Steuerelement mit einigen Daten geladen ist, fügen Sie es direkt nach dem Laden der Daten hinzu, sei es OnLoad oder ein Eigenschaftsaccessor.

Verwandte Themen