ASP.NET Tutorial/Validation/ValidationGroup

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

A validation group enables you to group related form fields together.

   <source lang="csharp">

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   void btnLogin_Click(Object sender, EventArgs e)
   {
       if (Page.IsValid)
           lblLoginResult.Text = "Log in successful!";
   }
   void btnRegister_Click(Object sender, EventArgs e)
   {
       if (Page.IsValid)
           lblRegisterResult.Text = "Registration successful!";
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>Show Validation Groups</title>

</head> <body>

   <form id="form1" runat="server">
   <fieldset>
   <legend>Login</legend>
   <asp:Label
       id="lblUserName"
       Text="User Name:"
       AssociatedControlID="txtUserName"
       Runat="server" />
   
<asp:TextBox id="txtUserName" Runat="server" /> <asp:RequiredFieldValidator id="reqUserName" ControlToValidate="txtUserName" Text="(Required)" ValidationGroup="LoginGroup" Runat="server" />

<asp:Label id="lblPassword" Text="Password:" AssociatedControlID="txtPassword" Runat="server" />
<asp:TextBox id="txtPassword" TextMode="Password" Runat="server" /> <asp:RequiredFieldValidator id="reqPassword" ControlToValidate="txtPassword" Text="(Required)" ValidationGroup="LoginGroup" Runat="server" /> <asp:Button id="btnLogin" Text="Login" ValidationGroup="LoginGroup" Runat="server" OnClick="btnLogin_Click" /> </fieldset> <asp:Label id="lblLoginResult" Runat="server" />
   <fieldset>
   <legend>Register</legend>
   <asp:Label
       id="lblFirstName"
       Text="First Name:"
       AssociatedControlID="txtFirstName"
       Runat="server" />
   
<asp:TextBox id="txtFirstName" Runat="server" /> <asp:RequiredFieldValidator id="reqFirstName" ControlToValidate="txtFirstName" Text="(Required)" ValidationGroup="RegisterGroup" Runat="server" />

<asp:Label id="lblLastName" Text="Last Name:" AssociatedControlID="txtLastName" Runat="server" />
<asp:TextBox id="txtLastName" Runat="server" /> <asp:RequiredFieldValidator id="reqLastName" ControlToValidate="txtLastName" Text="(Required)" ValidationGroup="RegisterGroup" Runat="server" />

<asp:Button id="btnRegister" Text="Register" ValidationGroup="RegisterGroup" Runat="server" OnClick="btnRegister_Click" /> </fieldset> <asp:Label id="lblRegisterResult" Runat="server" />
   </form>

</body> </html></source>


Group based validation (C#)

   <source lang="csharp">

File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ValidationGroups" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:Panel Height="112px" 
                  ID="Panel1" 
                  runat="server" 
                  Width="392px">
           <asp:TextBox ID="TextBox1" 
                        runat="server" 
                        ValidationGroup="Group1"></asp:TextBox>
           <asp:RequiredFieldValidator ErrorMessage="*Required" 
                                       ID="RequiredFieldValidator1"
                                       runat="server" 
                                       ValidationGroup="Group1" 
                                       ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
           <asp:Button ID="Button1" runat="server" Text="Validate Group1" 
     ValidationGroup="Group1" OnClick="Button_Click"/></asp:Panel> 
<asp:Panel Height="94px" ID="Panel2" runat="server" Width="392px" BorderWidth="2px"> <asp:TextBox ID="TextBox2" runat="server" ValidationGroup="Group2"></asp:TextBox> <asp:RequiredFieldValidator ErrorMessage="*Required" ID="RequiredFieldValidator2" runat="server" ValidationGroup="Group2" ControlToValidate="TextBox2"> </asp:RequiredFieldValidator>

<asp:Button ID="Button2" runat="server" Text="Validate Group2" ValidationGroup="Group2" OnClick="Button_Click"/></asp:Panel> <asp:Label EnableViewState="False" ID="lblInfo" runat="server"></asp:Label>
   </form>

</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class ValidationGroups : System.Web.UI.Page {

   protected void Button_Click(object sender, EventArgs e)
   {
       if (Page.IsValid)
       {
           lblInfo.Text = "Page posted back at " + DateTime.Now.ToLongTimeString();
       }
   
   }

}</source>


Two validation groups

   <source lang="csharp">

<%@ page language="C#" %> <script runat="server"> </script> <html> <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form runat="server">

First form

           <asp:textbox id="TextBox1" runat="server" validationgroup="firstform">
           </asp:textbox>
           <asp:requiredfieldvalidator 
                id="RequiredFieldValidator1" 
                runat="server" 
                display="Dynamic"
                setfocusonerror="True" 
                validationgroup="firstform" 
                controltovalidate="TextBox1">***</asp:requiredfieldvalidator>
           

<asp:button id="Button1" runat="server" validationgroup="firstform" text="Submit" />

Second form

           <asp:textbox id="TextBox2" runat="server" validationgroup="secondform">
           </asp:textbox>
           <asp:requiredfieldvalidator 
               id="RequiredFieldValidator2" 
               runat="server" 
               display="Dynamic"
               setfocusonerror="True" 
               validationgroup="secondform" 
               controltovalidate="TextBox2">***</asp:requiredfieldvalidator>
           

<asp:button id="Button2" runat="server" validationgroup="secondform" text="Submit" /> </form>

</body> </html></source>


Using the ValidationGroup property (VB)

   <source lang="csharp">

<%@ Page Language="VB" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>Validation Groups</title>

</head> <body>

   <form id="form1" runat="server">

St. Louis .NET User Group

       Username:
       <asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox>  Password:
       <asp:TextBox ID="TextBox2" Runat="server" 
        TextMode="Password"></asp:TextBox> 
       <asp:Button ID="Button1" Runat="server" Text="Login" 
        ValidationGroup="Login" />
           
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" ErrorMessage="* You must submit a username!" ControlToValidate="TextBox1" ValidationGroup="Login"> </asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" Runat="server" ErrorMessage="* You must submit a password!" ControlToValidate="TextBox2" ValidationGroup="Login"> </asp:RequiredFieldValidator>

Sign-up for the newsletter!

       Email:
       <asp:TextBox ID="TextBox3" Runat="server"></asp:TextBox> 
       <asp:Button ID="Button2" Runat="server" Text="Sign-up" 
        ValidationGroup="Newsletter" /> 
           
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" Runat="server" ErrorMessage="* You must submit a correctly formatted email address!" ControlToValidate="TextBox3" ValidationGroup="Newsletter" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"> </asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" Runat="server" ErrorMessage="* You forgot your email address!" ControlToValidate="TextBox3" ValidationGroup="Newsletter"> </asp:RequiredFieldValidator>
   </form>

</body> </html></source>


Validation Groups Demo

   <source lang="csharp">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

 <head>
   <title>Validation Groups Demo</title>
 </head>
 <body>
   <form id="Form1" runat="server">
       Username:
<asp:TextBox id="usernameTextBox" runat="server" /> <asp:RequiredFieldValidator id="usernameReq" runat="server" ControlToValidate="usernameTextBox" ErrorMessage="Username is required!" SetFocusOnError="True" ValidationGroup="Login" /> Password:
<asp:TextBox id="passwordTextBox" runat="server" TextMode="Password" /> <asp:RequiredFieldValidator id="passwordReq" runat="server" ControlToValidate="passwordTextBox" ErrorMessage="Password is required!" SetFocusOnError="True" ValidationGroup="Login" /> <asp:Button ID="loginButton" runat="server" Text="Log In" ValidationGroup="Login" />

Register

       Username:
<asp:TextBox id="newUserNameTextBox" runat="server" /> <asp:RequiredFieldValidator id="newUserNameReq" runat="server" ControlToValidate="newUserNameTextBox" ErrorMessage="Username is required!" SetFocusOnError="True" ValidationGroup="Register" /> Password:
<asp:TextBox id="newPasswordTextBox" runat="server" TextMode="Password" /> <asp:RequiredFieldValidator id="newPasswordReq" runat="server" ControlToValidate="newPasswordTextBox" ErrorMessage="Password is required!" SetFocusOnError="True" ValidationGroup="Register" /> <asp:Button ID="registerButton" runat="server" Text="Register" ValidationGroup="Register" /> </form> </body>

</html></source>