ASP.Net/Validation by Control/ValidationGroup

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

Use validation groups in ASP.NET 2.0 and beyond

<%@ Page Language="C#" AutoEventWireup="true"%>
<!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>Validation groups</title>
</head>
<script language="javascript">
function CheckMembership(source, arguments)
{
  arguments.IsValid = false;
  var buf = arguments.Value;
  if (buf == "Normal" || buf== "Silver" ||
            buf == "Gold" || buf == "Platinum")
    arguments.IsValid = true;
}
</script>

<body>
    <div id="pageContent">
        <form id="form1" runat="server">
      <table>
          <tr>
              <td>Name</td><td>*</td>
            <td><asp:textbox runat="server" id="fname"  />
                <asp:RequiredFieldValidator runat="server" id="fnameValidator" ValidationGroup="NameGroup"
                    ControlToValidate="fname" 
                  Text="!!!"
                    ErrorMessage="Name is mandatory" /></td></tr>
          <tr>
              <td>Last Name</td><td>*</td>
            <td><asp:textbox runat="server" id="lname" />
                <asp:RequiredFieldValidator runat="server" id="lnameValidator" ValidationGroup="NameGroup"
                    ControlToValidate="lname" 
                  Text="!!!"
                    ErrorMessage="Last name is mandatory" /></td></tr>
          <tr><td colspan="3"><hr /></td></tr>
          <tr>
              <td>Age</td><td></td>
            <td><asp:textbox runat="server" id="age" text="15" />
                <asp:CompareValidator runat="server" id="ageValidator" 
                    ValidationGroup="PersonalDataGroup"
                    ControlToValidate="age" 
                  Operator="GreaterThanEqual" 
                  ValueToCompare="18"
                    Type="integer"
                    ErrorMessage="Age must be at least 18." /></td></tr>
          <tr>
              <td>Email</td><td></td>
            <td><asp:textbox runat="server" id="email" />
                <asp:RegularExpressionValidator runat="server" id="emailValidator" 
                    ValidationGroup="PersonalDataGroup"
                    ControlToValidate="email" 
                  ValidationExpression="[a-zA-Z_0-9.-]+\@[a-zA-Z_0-9.-]+\.\w+" 
                    ErrorMessage="Must be an email address." /></td></tr>
          <tr>
              <td>Hire Date</td><td></td>
            <td><asp:textbox runat="server" id="hired"  />
                <asp:CompareValidator runat="server" id="hiredValidator" 
                       ValidationGroup="PersonalDataGroup"
                    ControlToValidate="hired" 
                  Display="Static"  
                  Operator="DataTypeCheck" 
                    Type="date"
                    ErrorMessage="Must enter a date." />
                <asp:RangeValidator runat="server" id="hiredDateValidator" 
                       ValidationGroup="PersonalDataGroup"            
                    ControlToValidate="hired" 
                  Display="Dynamic"
                    MinimumValue="2008-1-1"
                  MaximumValue="2008-12-31"
                    Type="Date"
                    ErrorMessage="Date after 1-1-99." /></td></tr>
          <tr>
              <td>Membership Level</td><td></td>
            <td><asp:textbox runat="server" id="membership" />
                <asp:CustomValidator runat="server" id="membershipValidator" 
                        ValidationGroup="PersonalDataGroup"            
                    ControlToValidate="membership" 
                  ClientValidationFunction="CheckMembership"
                    ErrorMessage="Must be Gold or Platinum." /></td></tr>
      </table>
      
        <hr>
      <asp:linkbutton ID="Linkbutton1" runat="server" Text="Validate Name..." ValidationGroup="NameGroup" />
      <asp:linkbutton ID="Linkbutton2" runat="server" Text="Validate Data..." ValidationGroup="PersonalDataGroup" />
        <hr>
        <asp:ValidationSummary ID="ValidationSummary1" runat="server"  
            ValidationGroup="NameGroup"
        ShowMessageBox="false" 
        ShowSummary="true" 
        HeaderText="The following errors occurred: (no message-box)"
        DisplayMode="List" />
        <asp:ValidationSummary ID="ValidationSummary2" runat="server"  
            ValidationGroup="PersonalDataGroup"
        ShowMessageBox="true" 
        ShowSummary="true" 
        HeaderText="The following errors occurred:"
        DisplayMode="BulletList" />
        </form>
    </div>
</body>
</html>