Compartilhar via


Especificando grupos de validação

Grupos de validação permitem que você a organize controles de validação em uma página como um conjunto.Cada grupo de validação pode executar a validação independentemente de outros grupos de validação na página.

Você cria um grupo de validação, definindo a propriedade ValidationGroup com o mesmo nome (uma sequência de caracteres) para todos os controles que você deseja agrupar.Você pode atribuir qualquer nome a um grupo de validação, mas você deve usar o mesmo nome de todos os membros do grupo.

Durante um postback, a classe Page propriedade IsValid é definida com base apenas nos controles de validação no grupo de validação atual.O grupo de validação atual é determinado pelo controle que causou a ocorrência de validação.Por exemplo, se um controle de botão com um grupo de validação do LoginForm é clicado, em seguida, a propriedade IsValid retornará true se todos os controles de validação cuja propriedade ValidationGroup é definida como LoginForm forem válidos.Outros controles, como um controle DropDownList também pode disparar validação se a propriedade CausesValidationdo controle é definida como true (e a propriedade AutoPostBack é definida como true.)

Para validar programaticamente, você pode chamar a sobrecarga do método Validate que utiliza o parâmetro validationGroup para forçar a validação de somente esse grupo de validação.Observe que, quando você chama o método Validate, a propriedade IsValid refletirá a validade de todos os grupos validadas até o momento.Isso pode incluir um grupo que foi validado como resultado de um postback, e o grupo validado por meio de programação.Se qualquer controle em qualquer grupo for inválido, a propriedade IsValid retorna false.

O exemplo de código a seguir demonstra como utilizar a propriedade ValidationGroup para especificar os controles para validar quando um controle Button envia de volta para o servidor.A página contém três caixas de texto para capturar dados de usuário e três controles RequiredFieldValidator para garantir que o usuário não deixe um caixa de texto em branco.Os controles RequiredFieldValidator para as primeiras duas caixas de texto estão no grupo de validação PersonalInfoGroup e o controle RequiredFieldValidator para a terceira caixa de texto está no grupo de validações LocationInfoGroup.Quando Button1 é clicado, somente os controles no grupo de validação PersonalInfoGroup são validados.Quando Button2 é clicado, somente o controle no grupo de validação LocationInfoGroup é validado.

<%@ 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>

Consulte também

Outros recursos

Controles de Validação do ASP.NET