Freigeben über


Angeben von Validierungsgruppen

Aktualisiert: November 2007

Mithilfe von Validierungsgruppen können Sie Validierungssteuerelemente auf einer Seite anordnen. Jede Validierungsgruppe kann die Validierung unabhängig von anderen Validierungsgruppen auf der Seite ausführen.

Validierungsgruppen werden erstellt, indem Sie die ValidationGroup-Eigenschaft für alle zu gruppierenden Steuerelemente auf denselben Namen (eine Zeichenfolge) festlegen. Einer Validierungsgruppe kann ein beliebiger Name zugewiesen werden, alle Member der Gruppe müssen jedoch denselben Namen aufweisen.

Während des Postbacks wird die IsValid-Eigenschaft der Page-Klasse ausschließlich auf der Grundlage der Validierungssteuerelemente in der aktuellen Validierungsgruppe festgelegt. Die aktuelle Validierungsgruppe wird von dem Steuerelement bestimmt, das die Validierung ausgelöst hat. Wenn z. B. auf ein Schaltflächen-Steuerelement mit der Validierungsgruppe LoginForm geklickt wird, gibt die IsValid-Eigenschaft true zurück, sofern alle Validierungssteuerelemente gültig sind, deren ValidationGroup-Eigenschaft auf LoginForm festgelegt ist. Andere Steuerelemente, z. B. ein DropDownList-Steuerelement, können auch eine Validierung auslösen, wenn die CausesValidation-Eigenschaft des Steuerelements auf true (und die AutoPostBack-Eigenschaft auf true) festgelegt ist.

Zum programmgesteuerten Validieren können Sie die Validate-Methodenüberladung aufrufen, die den validationGroup-Parameter annimmt, um die Validierung ausschließlich für diese Validierungsgruppe zu erzwingen. Beachten Sie, dass beim Aufrufen der Validate-Methode die IsValid-Eigenschaft die Gültigkeit aller bisher validierten Gruppen wiederspiegelt. Dies kann sowohl Gruppen einschließen, die als Reaktion auf ein Postback validiert wurden, als auch programmgesteuert validierte Gruppen. Wenn ein Steuerelement in einer der beiden Gruppen ungültig ist, gibt die IsValid-Eigenschaft false zurück.

Im folgenden Codebeispiel wird veranschaulicht, wie mit der ValidationGroup-Eigenschaft die Steuerelemente angegeben werden, die validiert werden sollen, wenn ein Button-Steuerelement Daten an den Server zurücksendet. Die Seite enthält drei Textfelder, in denen Daten vom Benutzer und drei RequiredFieldValidator-Steuerelementen aufgezeichnet werden, um sicherzustellen, dass der Benutzer kein Textfeld leer lässt. Die RequiredFieldValidator-Steuerelemente für die ersten beiden Textfelder gehören zur PersonalInfoGroup-Validierungsgruppe, und das RequiredFieldValidator-Steuerelement des dritten Textfelds gehört zur LocationInfoGroup-Validierungsgruppe. Wenn auf Button1 geklickt wird, werden nur die Steuerelemente in Validierungsgruppe PersonalInfoGroup überprüft. Wenn auf Button2 geklickt wird, werden nur die Steuerelemente in Validierungsgruppe LocationInfoGroup überprüft.

<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
  <title>Button.ValidationGroup Example</title>
</head>
<body>
  <form id="form1" >

    <h3>Button.ValidationGroup Example</h3>

    <asp:label id="NameLabel" 
      text="Enter your name:"
      runat="Server"
      AssociatedControlID="NameTextBox">
    </asp:label>

    &nbsp

    <asp:textbox id="NameTextBox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator1"
      controltovalidate="NameTextBox"
      validationgroup="PersonalInfoGroup"
      errormessage="Enter your name."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <asp:label id="AgeLabel" 
      text="Enter your age:"
      runat="Server"
      AssociatedControlID="AgeTextbox">
    </asp:label>

    &nbsp

    <asp:textbox id="AgeTextbox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator2"
      controltovalidate="AgeTextBox"
      validationgroup="PersonalInfoGroup"
      errormessage="Enter your age."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <!--When Button1 is clicked, only validation
    controls that are a part of PersonalInfoGroup
    are validated.-->
    <asp:button id="Button1" 
      text="Validate" 
      causesvalidation="true"
      validationgroup="PersonalInfoGroup"
      runat="Server" />

    <br /><br />

    <asp:label id="CityLabel" 
      text="Enter your city of residence:"
      runat="Server"
       AssociatedControlID="CityTextbox">
    </asp:label>

    &nbsp

    <asp:textbox id="CityTextbox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator3"
      controltovalidate="CityTextBox"
      validationgroup="LocationInfoGroup"
      errormessage="Enter a city name."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <!--When Button2 is clicked, only validation
    controls that are a part of LocationInfoGroup
    are validated.-->
    <asp:button id="Button2" 
      text="Validate" 
      causesvalidation="true"
      validationgroup="LocationInfoGroup"
      runat="Server" />

  </form>
</body>
</html>
<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" >
  <title>Button.ValidationGroup Example</title>
</head>
<body>
  <form id="form1" >

    <h3>Button.ValidationGroup Example</h3>

    <asp:label id="NameLabel" 
      text="Enter your name:"
      runat="Server"
      AssociatedControlID="NameTextBox">
    </asp:label>

    &nbsp

    <asp:textbox id="NameTextBox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator1"
      controltovalidate="NameTextBox"
      validationgroup="PersonalInfoGroup"
      errormessage="Enter your name."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <asp:label id="AgeLabel" 
      text="Enter your age:"
      runat="Server" 
      AssociatedControlID="AgeTextBox">
    </asp:label>

    &nbsp

    <asp:textbox id="AgeTextBox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator2"
      controltovalidate="AgeTextBox"
      validationgroup="PersonalInfoGroup"
      errormessage="Enter your age."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <!--When Button1 is clicked, only validation
    controls that are a part of PersonalInfoGroup
    are validated.-->
    <asp:button id="Button1" 
      text="Validate" 
      causesvalidation="true"
      validationgroup="PersonalInfoGroup"
      runat="Server" />

    <br /><br />

    <asp:label id="CityLabel" 
      text="Enter your city of residence:"
      runat="Server" 
      AssociatedControlID="CityTextBox">
    </asp:label>

    &nbsp

    <asp:textbox id="CityTextBox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator3"
      controltovalidate="CityTextBox"
      validationgroup="LocationInfoGroup"
      errormessage="Enter a city name."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <!--When Button2 is clicked, only validation
    controls that are a part of LocationInfoGroup
    are validated.-->
    <asp:button id="Button2" 
      text="Validate" 
      causesvalidation="true"
      validationgroup="LocationInfoGroup"
      runat="Server" />

  </form>
</body>
</html>

Siehe auch

Weitere Ressourcen

ASP.NET-Validierungssteuerelemente