Frage

In einem bestimmten Formular für benutzerdefinierte Listenelemente, das ich für meine WSS 3.0 -Web -App erstelle, muss ich die Seite validieren, wenn sie geladen wird, damit alle Fehler, die der Benutzer von einem vorherigen Speicher macht, sofort festgestellt werden. Ich mache es derzeit mit Verwendung Page.Validate() in dem OnLoad Methode.

Mit all dem TextBox und RadioButtonList Steuerelemente, die ich bevölkern (auch auf Seitenlade), kann ich sie einfach bevölkern, bevor ich ein paar Bündel auslöste InputFormCustomValidator Steuerelemente auf der Seite. Für diese Steuerelemente ist alles klar und die korrekt ausgefüllten Felder sind nicht als ungültig markiert.

Aber für die UserField und DateTimeField Steuerelemente, es wird sie als leer für die Seitenlastvalidierung behandeln, ob sie Daten enthalten oder nicht. Dies geschieht beides bei der Verwendung des tatsächlichen UserField und DateTimeField Steuerelemente, die Daten automatisch basierend auf der Element -ID -QueryString und bei der Verwendung der zugrunde liegenden PeopleEditor und DateTimeControl Steuerelemente, die ich auf der Seite vorpopuliere, laden Sie wie die Textfelder.

Sobald es nach dem Rückschlag gab, die Validierung erfordert, erkennt die Validierung den Inhalt dieser Felder ordnungsgemäß.

Gibt es etwas, das ich tun kann, um dies zu umgehen, damit die Felder von Benutzern und DateTime korrekt gefüllt sind nicht als ungültig auf Seite geladen markiert? Soll ich die Validierung in einer anderen Methode ausführen als OnLoad? Ich würde persönlich gerne die Felder als behalten UserField und DateTimeField Anstatt die zugrunde liegenden Kontrollen zu verwenden, aber das beschränkt mich darauf, nicht in der Lage zu sein, zu definieren, wenn sie bevölkert werden. Wenn die Lösung darin besteht, die Kontrollvorpopulation rechtzeitig in eine frühere Stufe zu verschieben, kann ich mich damit zufrieden geben, aber es bleibt es vorzuziehen, dies nicht zu tun, wenn sie auf andere Weise repariert werden kann.

War es hilfreich?

Lösung

Haben Sie versucht, äReChildControls () vor dem .validate () anzurufen? Wenn Sie Steuerelemente dynamisch erstellen/laden, wird dies normalerweise im Ereignis von CreateChildControls () statt im Onload () durchgeführt, da die meisten benutzerdefinierten Steuerelemente vor dem Load () an den Ereignissen teilnehmen müssen.

Andere Tipps

Versuchen Sie vielleicht, Seite zu bewegen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top