Freigeben über


BaseValidator-Klasse

Fungiert als abstrakte Basisklasse für Validierungssteuerelemente.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public MustInherit Class BaseValidator
    Inherits Label
    Implements IValidator
'Usage
Dim instance As BaseValidator
public abstract class BaseValidator : Label, IValidator
public ref class BaseValidator abstract : public Label, IValidator
public abstract class BaseValidator extends Label implements IValidator
public abstract class BaseValidator extends Label implements IValidator

Hinweise

Die BaseValidator-Klasse stellt die Basisimplementierung für alle Validierungssteuerelemente bereit. Validierungssteuerelemente werden verwendet, um Benutzereingaben in einem zugeordneten Eingabesteuerelement zu überprüfen. Wenn ein Benutzer einen Wert eingibt, der die Validierung nicht besteht, zeigt das Validierungssteuerelement eine Fehlermeldung an. Da ein Validierungssteuerelement vom Eingabesteuerelement getrennt ist, können Sie die Fehlermeldung in Bezug auf das Eingangssteuerelement an beliebiger Stelle auf der Seite platzieren. In ASP.NET stehen mehrere Validierungssteuerelemente zur Verfügung, die bestimmte Typen von Validierungen ausführen. Diese Steuerelemente sind in der folgenden Tabelle beschrieben.

Validierungssteuerelement

Beschreibung

CompareValidator

Überprüft einen Wert anhand des in ein anderes Eingabesteuerelement eingegebenen Werts, anhand einer Konstante oder anhand eines Datentyps durch Festlegen der CompareValidator.Operator-Eigenschaft auf ValidationCompareOperator.DataTypeCheck.

CustomValidator

Überprüft einen Wert mit einer vom Benutzer bereitgestellten benutzerdefinierten Validierungsroutine.

RangeValidator

Überprüft, ob sich ein Wert innerhalb eines Wertebereichs befindet.

RegularExpressionValidator

Überprüft einen Wert anhand eines regulären Ausdrucks.

RequiredFieldValidator

Überprüft, ob in ein erforderliches Feld ein Wert eingegeben wurde.

Validierungssteuerelemente überprüfen stets das zugeordnete Eingabesteuerelement des Servers. Validierungssteuerelemente verfügen außerdem über eine vollständige Clientimplementierung, wodurch skriptfähige Browser (z. B. Microsoft Internet Explorer, Version 4.0 oder höher) die Validierung auf dem Client durchführen können. Durch die Validierung auf dem Client wird der Validierungsvorgang optimiert, indem Benutzereingaben vor dem Senden an den Server überprüft werden. Auf diese Weise werden Fehler auf dem Client vor dem Senden des Formulars entdeckt, wodurch der für die Validierung auf dem Server erforderliche Roundtrip vermieden wird.

Mit einem einzelnen Eingabesteuerelement können mehrere Validierungssteuerelemente verwendet werden, um verschiedene Kriterien zu überprüfen. Sie können z. B. mehrere Validierungssteuerelemente in einem TextBox-Steuerelement anwenden. Mithilfe des RangeValidator-Steuerelements können Sie sicherstellen, dass sich ein in das TextBox-Steuerelement eingegebener Wert in einem festgelegten Bereich befindet, und mithilfe eines RequiredFieldValidator-Steuerelements können Sie sicherstellen, dass der Benutzer einen Wert eingibt.

In ASP.NET sind viele Steuerelemente verfügbar, mit denen ein Postback zum Server ausgeführt werden kann. Wenn die CausesValidation-Eigenschaft eines dieser Steuerelemente auf true festgelegt ist, wird die Validierung durchgeführt, wenn das Steuerelement ein Postback zum Server durchführt. Die folgenden Steuerelemente können ein Postback zum Server durchführen:

Hinweis

Einige dieser Steuerelemente führen nur dann ein Postback zum Server durch, wenn die AutoPostBack-Eigenschaft auf true festgelegt ist.

Diese Steuerelemente verfügen jeweils über eine ValidationGroup-Eigenschaft, die, sofern sie festgelegt ist, nur die Validierungssteuerelemente in der angegebenen Gruppe überprüft, wenn das Steuerelement ein Postback zum Server auslöst. Um Validierungssteuerelemente zu gruppieren, legen Sie die ValidationGroup-Eigenschaft jedes Validierungssteuerelements auf denselben Wert fest.

Mit der ControlToValidate-Eigenschaft können Sie einem Validierungssteuerelement ein Eingabesteuerelement zuordnen. Mit der Text-Eigenschaft können Sie den Text angeben, der in einem Validierungssteuerelement angezeigt werden soll, wenn die Validierung fehlschlägt. Mit dem ValidationSummary-Steuerelement können Sie auch eine Zusammenfassung aller Steuerelemente auf der Seite anzeigen, für die die Validierung fehlgeschlagen ist. Um den Text anzugeben, der in einem ValidationSummary-Steuerelement angezeigt werden soll, verwenden Sie die ErrorMessage-Eigenschaft.

Hinweis

Wenn Sie die ErrorMessage-Eigenschaft festlegen, ohne die Text-Eigenschaft festzulegen, wird der Wert der ErrorMessage-Eigenschaft ebenfalls im Validierungssteuerelement angezeigt.

Wenn Sie Validierungssteuerelemente verwenden, sollten Sie immer die Ergebnisse der serverseitigen Validierung überprüfen, bevor weitere Verarbeitungen durchgeführt werden. Nach einem Postback, jedoch bevor die Ereignismethoden aufgerufen werden, werden die Validierungssteuerelemente der Seite aufgerufen, und die Ergebnisse werden in der Page.IsValid-Eigenschaft aggregiert. (Sie können die Validierungssteuerelemente auch explizit mit der Validate-Methode aufrufen.) Sie sollten in Ihrem Code vor dem Verarbeiten von Eingaben prüfen, ob die Page.IsValid-Eigenschaft true zurückgibt. Obwohl skriptfähige Browser ggf. verhindern können, dass ein Postback auf dem Client erfolgt, wenn die Validierung fehlgeschlagen ist, sollten Sie im Servercode dennoch auch stets Page.IsValid prüfen, bevor Sie validierte Daten verarbeiten.

Sie können die Validierung auch manuell durchführen. Mit der Page.Validate-Methode können Sie alle Validierungssteuerelemente auf der Seite überprüfen. Mit der Validate-Methode des Steuerelements können Sie einzelne Validierungssteuerelemente überprüfen.

Hinweis

Wenn Sie die Page.IsValid-Eigenschaft in einer Page_Load-Methode verwenden, müssen Sie zunächst explizit die Page.Validate-Methode aufrufen. Da die Validierung nach dem Control.Load-Ereignis der Seite, jedoch noch vor dem Ereignishandler für das Click-Ereignis oder das Command-Ereignis vorgenommen wird, wird die Page.IsValid-Eigenschaft erst bei Aufruf der Page.Validate-Methode aktualisiert. Anstelle der Page_Load-Methode können Sie den Code alternativ im Ereignishandler für das Click-Ereignis oder das Command-Ereignis platzieren.

Nicht alle Webserver-Steuerelemente unterstützen Validierungssteuerelemente. Die Standardsteuerelemente, die mit einem Validierungssteuerelement überprüft werden können, sind:

Hinweis

Zum Validieren eines Eingabesteuerelements muss dem Steuerelement das System.Web.UI.ValidationPropertyAttribute-Attribut zugeordnet werden.

Wenn die Validierung fehlschlägt, können Sie dem zugeordneten Eingabesteuerelement den Fokus geben, indem Sie die SetFocusOnError-Eigenschaft auf true festlegen.

Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz von BaseValidator finden Sie unter BaseValidator-Konstruktor.

Eingabehilfen

Das für dieses Steuerelement standardmäßig wiedergegebene Markup entspricht eventuell nicht den Standards für die Eingabehilfen wie beispielsweise den Richtlinien der Web Content Accessibility Guidelines 1.0 (WCAG) mit der Priorität 1. Details über die Unterstützung von Eingabehilfen für dieses Steuerelement finden Sie unter Steuerelemente und Eingabehilfen von ASP.NET.

Hinweise für Erben Beim Erben von der BaseValidator-Klasse müssen Sie den folgenden Member überschreiben: EvaluateIsValid.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe mehrerer Validierungssteuerelemente sichergestellt werden kann, dass der Benutzer einen gültigen Wert in ein TextBox-Steuerelement eingibt.

<%@ Page Language="VB" AutoEventWireup="False" %>

<script runat="server">
 
  Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SubmitButton.Click
 
    If Page.IsValid Then
    
      MessageLabel.Text = "Page submitted successfully."
    
    Else
    
      MessageLabel.Text = "There is an error on the page."
    
    End If
    
  End Sub
 
</script>

<html>
  <body>
    <form runat="server">

      <h3>Validator Example</h3>
     
      Enter a number from 1 to 10.
      <asp:textbox id="NumberTextBox" 
        runat="server"/>

      <asp:rangevalidator id="NumberCompareValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"  
        type="Integer"
        display="Dynamic" 
        errormessage="Please enter a value from 1 to 10."
        maximumvalue="10"
        minimumvalue="1"  
        text="*"
        runat="server"/>

      <asp:requiredfieldvalidator id="TextBoxRequiredValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"
        display="Dynamic" 
        errormessage="Please enter a value."
        text="*"
        runat="server"/>

      <br><br>

      <asp:button id="SubmitButton"
        text="Submit"
        runat="server"/>
 
      <br><br>
       
      <asp:label id="MessageLabel" 
        runat="server"/>

      <br><br>

      <asp:validationsummary
        id="ErrorSummary"
        runat="server"/>
 
    </form>
  </body>
</html>
<%@ Page Language="C#" %>

<script runat="server">
 
  void Button_Click(Object sender, EventArgs e) 
  {
    if (Page.IsValid)
    {
      MessageLabel.Text = "Page submitted successfully.";
    }
    else
    {
      MessageLabel.Text = "There is an error on the page.";
    }
  }
 
</script>

<html>
  <body>
    <form runat="server">

      <h3>Validator Example</h3>
     
      Enter a number from 1 to 10.
      <asp:textbox id="NumberTextBox" 
        runat="server"/>

      <asp:rangevalidator id="NumberCompareValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"  
        type="Integer"
        display="Dynamic" 
        errormessage="Please enter a value from 1 to 10."
        maximumvalue="10"
        minimumvalue="1"  
        text="*"
        runat="server"/>

      <asp:requiredfieldvalidator id="TextBoxRequiredValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"
        display="Dynamic" 
        errormessage="Please enter a value."
        text="*"
        runat="server"/>

      <br><br>

      <asp:button id="SubmitButton"
        text="Submit"
        onclick="Button_Click"
        runat="server"/>
 
      <br><br>
       
      <asp:label id="MessageLabel" 
        runat="server"/>

      <br><br>

      <asp:validationsummary
        id="ErrorSummary"
        runat="server"/>
 
    </form>
  </body>
</html>
<%@ Page Language="JScript" %>

<script runat="server">
 
  function Button_Click(sender, e : EventArgs) 
  {
    if (Page.IsValid)
    {
      MessageLabel.Text = "Page submitted successfully.";
    }
    else
    {
      MessageLabel.Text = "There is an error on the page.";
    }
  }
 
</script>

<html>
  <body>
    <form runat="server">

      <h3>Validator Example</h3>
     
      Enter a number from 1 to 10.
      <asp:textbox id="NumberTextBox" 
        runat="server"/>

      <asp:rangevalidator id="NumberCompareValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"  
        type="Integer"
        display="Dynamic" 
        errormessage="Please enter a value from 1 to 10."
        maximumvalue="10"
        minimumvalue="1"  
        text="*"
        runat="server"/>

      <asp:requiredfieldvalidator id="TextBoxRequiredValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"
        display="Dynamic" 
        errormessage="Please enter a value."
        text="*"
        runat="server"/>

      <br><br>

      <asp:button id="SubmitButton"
        text="Submit"
        onclick="Button_Click"
        runat="server"/>
 
      <br><br>
       
      <asp:label id="MessageLabel" 
        runat="server"/>

      <br><br>

      <asp:validationsummary
        id="ErrorSummary"
        runat="server"/>
 
    </form>
  </body>
</html>

Vererbungshierarchie

System.Object
   System.Web.UI.Control
     System.Web.UI.WebControls.WebControl
       System.Web.UI.WebControls.Label
        System.Web.UI.WebControls.BaseValidator
           System.Web.UI.WebControls.BaseCompareValidator
           System.Web.UI.WebControls.CustomValidator
           System.Web.UI.WebControls.RegularExpressionValidator
           System.Web.UI.WebControls.RequiredFieldValidator

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

BaseValidator-Member
System.Web.UI.WebControls-Namespace
CompareValidator
CustomValidator
RangeValidator
RegularExpressionValidator
RequiredFieldValidator
ValidationSummary
CausesValidation
ErrorMessage
Text
ValidationGroup