16 ValidationSummary

  • 使用Validator错误消息会显示在放置控件的位置,这样就有可能表单非常大,用户看不到全部的提示信息。还有可能是错误信息太多散落各地,用户不便观看,希望能集中显示于某区域。
  • ValidationSummary控件用来集中显示错误消息。每个验证控件都有ErrorMessage和Text属性,ErrorMessage是用来显示到ValidationSummary中的值,Text是用来显示到VAlidator位置的值。如果Text为空,则ErrorMessage会同时显示到ValidationSummary和控件的位置,能知道指的是哪个控件;ErrorMessage一般显示的详细些,比如用户名不能为空等,text简短些,比如一个*号,这样才能从ValidationSummary每条错误信息中读取值出来。
  • ValidationSummary的DisplayMode显示模式,主要是显示的样式不一样。还有ShowMessageBox,如果此值为True时,会弹出窗口把错误信息显示出来。

实例:

  在表单中放入textbox控件,主要用于输入

  1.      用户名:不能为空,用到RequiredFieldValidator
  2.      性别: DropdownList,默认显示"--请选择性别--",主要设置RequiredFieldValidator的InitialValue。
  3.      工资:主要用到RangeValidator,它的范围为5000-20000,数据类型为Currency;
  4.      入职日期:与2011-04-01日期比较,主要用到CompareValidator,为值比较。
  5.      转正日期:与入职日期比较,主要用到CompareValidator,与其它控件比较。
  6.      邮箱:  主要用到RegularExpressionValidator,设置它的ValidationExprission的正则表达式。
  7.     放上ValidationSummary汇总验证控件,你会发现有些错误信息会显示于它上面。
  8.    统一设置Text为*号,ErrorMessage可以自行设置。

界面截图:

 

aspx源码:

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
   <style type="text/css">
     .error li{color:Red;}
   </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:Label ID="Label1" runat="server" Text="用户名:"></asp:Label>
        <asp:TextBox ID="txtUser" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="txtUser" ErrorMessage="用户名不能为空">*</asp:RequiredFieldValidator>
        <br />
        <asp:Label ID="Label2" runat="server" Text="性别:"></asp:Label>
        <asp:DropDownList ID="ddGender" runat="server">
            <asp:ListItem>--请选择性别--</asp:ListItem>
            <asp:ListItem></asp:ListItem>
            <asp:ListItem></asp:ListItem>
            <asp:ListItem>保密</asp:ListItem>
        </asp:DropDownList>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ControlToValidate="ddGender" ErrorMessage="请选择性别" InitialValue="--请选择性别--">*</asp:RequiredFieldValidator>
        <br />
        工资:<asp:TextBox ID="txtSalary" runat="server"></asp:TextBox>
        <asp:RangeValidator ID="RangeValidator1" runat="server" 
            ControlToValidate="txtSalary" ErrorMessage="工资范围5000-20000" 
            MaximumValue="20000" MinimumValue="5000" Type="Currency">*</asp:RangeValidator>
        <br />
        入职日期:<asp:TextBox ID="txtIN" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
            ControlToValidate="txtIN" ErrorMessage="请输入入职日期">*</asp:RequiredFieldValidator>
        <asp:CompareValidator ID="CompareValidator1" runat="server" 
            ControlToValidate="txtIN" ErrorMessage="入职日期必须大于2011-4-1" 
            Operator="GreaterThanEqual" Type="Date" ValueToCompare="2011-4-1">*</asp:CompareValidator>
        <br />
        转正日期:<asp:TextBox ID="txtNew" runat="server"></asp:TextBox>
        <asp:CompareValidator ID="CompareValidator2" runat="server" 
            ControlToCompare="txtIN" ControlToValidate="txtNew" 
            ErrorMessage="转正日期必须大于或等于入职日期" Operator="GreaterThanEqual" Type="Date">*</asp:CompareValidator>
        <br />
        邮箱:<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
            ControlToValidate="txtEmail" ErrorMessage="邮箱格式不正确" 
            ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">*</asp:RegularExpressionValidator>
        <br />
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        <br />
        <asp:ValidationSummary ID="ValidationSummary1" runat="server" CssClass="error" 
            ShowMessageBox="True" />
    
    </div>
    </form>
</body>
</html>

button的cs码:

 

 protected void Button1_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
                return;
            Response.Write("数据更新成功.");
        }

 

posted on 2013-06-10 10:05  天上星  阅读(678)  评论(0编辑  收藏  举报

导航