Standardmäßig führen ASP.NET-Validierungssteuerelemente die Validierung automatisch durch, wenn die Seite an den Server zurückgesendet wird, nachdem die Seite initialisiert wurde (d. h. nachdem der Ansichtsstatus und die Postback-Daten verarbeitet wurden) und bevor Ereignisbehandlungscode aufgerufen wird. Wenn der Browser clientseitiges Scripting unterstützt, kann das Steuerelement auch eine Validierung im Browser durchführen.
Allerdings kann es manchmal erforderlich sein, die Validierung programmgesteuert durchzuführen. In den folgenden Situationen müssen Sie möglicherweise eine programmgesteuerte Überprüfung durchführen:
·Wenn der Validierungswert nicht zur Laufzeit festgelegt wurde. Wenn Sie beispielsweise ein RangeValidator-Steuerelement verwenden, möchten Sie möglicherweise dessen Eigenschaften „MinimumValue“ und „MaximumValue“ zur Laufzeit basierend auf dem vom Benutzer eingegebenen Wert festlegen. Die Standardvalidierung funktioniert derzeit nicht, da im RangeValidator-Steuerelement nicht genügend Informationen vorhanden sind, wenn die Seite das Validierungssteuerelement aufruft, um die Validierung durchzuführen.
·Die Gültigkeit des Steuerelements (oder der gesamten Seite) muss im Page_Load-Ereignishandler bestimmt werden. Während der Verarbeitungsphase der Seite wurde das Validierungssteuerelement noch nicht aufgerufen, sodass die IsValid-Eigenschaft der Seite oder einzelner Steuerelemente nicht festgelegt wurde. (Wenn Sie versuchen, den Wert dieser Eigenschaft abzurufen, wird eine Ausnahme ausgelöst.) Wenn Sie jedoch die Gültigkeit bestimmen möchten, können Sie die Validierung programmgesteuert aufrufen.
·Sie bearbeiten ein Steuerelement (entweder ein Eingabesteuerelement oder ein Validierungssteuerelement) zur Laufzeit.
Üblicherweise können Sie die Überprüfung jederzeit programmgesteuert durchführen und haben so eine genauere Kontrolle darüber, wann die Überprüfung durchgeführt wird.
Rufen Sie die Validate-Methode des Validierungssteuerelements auf.
Das Steuerelement führt Prüfungen durch und legt die IsValid-Eigenschaft des Steuerelements und der Seite fest. Wenn ein Fehler erkannt wird, wird die Fehlermeldung wie gewohnt angezeigt, wenn die Seite an den Benutzer zurückgegeben wird.
Das folgende Codebeispiel zeigt, wie Eigenschaften programmgesteuert festgelegt werden. In diesem Fall bucht eine ASP.NET-Webseite ein Zimmer in einem Resort und bietet bei jedem Besuch kostenlose Hin- und Rückfahrt. Benutzer müssen Ankunfts- und Abreisedaten eingeben und dann ihren Zeitplan während des Besuchs planen. Das RangeValidator-Steuerelement wird verwendet, um sicherzustellen, dass der Benutzer ein typisches Datumsformat eingibt und dass das Reisedatum zwischen dem Ankunfts- und Abreisedatum liegen sollte.
Beschreibung: Das Validator-Steuerelement löst eine Ausnahme aus, wenn der vom Benutzer eingegebene Wert nicht in ein Datum umgewandelt werden kann. Aus Gründen der Übersichtlichkeit enthält dieses Beispiel keine Fehlerbehandlung.
Die Ankunfts- und Abreisedaten stammen von zwei TextBox-Webserversteuerelementen auf der Seite, txtArrival und txtDeparture. Das Reisedatum wird in das dritte TextBox-Steuerelement txtTourDate eingegeben, das vom RangeValidator-Steuerelement validiert wird.
Hinweis: Bei der programmgesteuerten Validierung sollte die clientseitige Skripterstellung deaktiviert werden, damit das Steuerelement keine falschen Fehlermeldungen anzeigt, bevor Ihr serverseitiger Validierungscode ausgeführt wird.
private void Button1_Click(object sender, System.EventArgs e)
{
RangeValidator1.MinimumValue = txtArrival.Text;
RangeValidator1.MaximumValue = txtDeparture.Text;
RangeValidator1.Type = ValidationDataType.Date;
RangeValidator1.Validate();
if (!RangeValidator1.IsValid)
{
RangeValidator1.ErrorMessage = "Das Tourdatum muss " + sein
„zwischen dem Ankunfts- und dem Abreisedatum liegen.“;
}
}
Dieser Artikel stammt aus dem CSDN-Blog. Bitte geben Sie beim Nachdruck die Quelle an:
http://blog.csdn.net/dodream/archive/2009/12/17/5024666.aspx