当前位置:编程学习 > C#/ASP.NET >>

使用常用的数据验证控件编写一个表单页面

【考点】
表单数据验证控件的编写实例。
【出现频率】
★★☆☆☆
【解答】
在VS 2008中添加新的WEB窗体项到NetWeb项目,并命名为FormVd.aspx,编写FormVd.aspx如代码11.16所示。

代码11.16  表单信息提交验证页面:FormVd.aspx

<%@ Page  Language="C#" AutoEventWireup="true" CodeBehind="FormVd.aspx.cs" Inherits="NetWeb.FormVd"%>
 
<!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 runat="server">
    <title>表单信息提交验证页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <div id="RegForm" runat="server">
      用  户  名:<asp:TextBox runat="server" ID="tb1"></asp:TextBox>
      <asp:RequiredFieldValidator runat="server" ID="Vd1"
 ControlToValidate="tb1" Text="请填写用户名"></asp:RequiredFieldValidator>
      <br />
      密        码:
<asp:TextBox runat="server" ID="tb2" TextMode="Password"></asp:TextBox>
      <asp:RequiredFieldValidator runat="server" ID="Vd2"
 ControlToValidate="tb2" Display="Dynamic" Text="请输入密码"></asp:RequiredFieldValidator>
      <asp:CompareValidator runat="server" ID="Vd3" ControlToCompare="tb1"
ControlToValidate="tb2" Operator="NotEqual" Text="用户名和密码相同"></asp:CompareValidator>
      <br />
      确认密码:<asp:TextBox runat="server" ID="tb3" TextMode="Password"></asp:TextBox>
      <asp:RequiredFieldValidator runat="server" ID="Vd4"
 ControlToValidate="tb3" Display="Dynamic" Text="请输入确认密码"></asp:RequiredFieldValidator>
      <asp:CompareValidator runat="server" ID="Vd5" ControlToCompare="tb2"
 ControlToValidate="tb3" Operator="Equal" Text="密码两次输入不相同"></asp:CompareValidator>
      <br />
      年        龄:
<asp:TextBox runat="server" ID="tb4"></asp:TextBox>
      <asp:RequiredFieldValidator runat="server" ID="Vd6" ControlToValidate="tb4" Display="Dynamic"
Text="请输入年龄"></asp:RequiredFieldValidator>
      <asp:RangeValidator runat="server" ID="Vd7" ControlToValidate="tb4"
MinimumValue="10" MaximumValue="60" Type="Integer"
Text="请输入正确的年龄"></asp:RangeValidator>
      <br />
      <asp:Button runat="server" ID="btn" Text="提交注册信息"  onclick="btn_Click" />
      </div>
      <div id="SuccessReg">
         <asp:Label runat="server" ID="STxt"></asp:Label>
      </div>
    </div>
    </form>
</body>
</html>
本题主要考查面试者对表单数据验证控件工作方式的理解。在完整、成熟的WEB应用程序项目中,编写FormVd.aspx.cs如代码11.17所示。

代码11.17  表单信息提交验证成功信息显示:FormVd.aspx.cs

using System;
………………………
 
namespace NetWeb
{
    public partial class FormVd : System.Web.UI.Page
    {
        protected void btn_Click(object sender, EventArgs e)
        {
            //判断所有验证控件的“IsValid”属性是否为“true”
            if (Vd1.IsValid && Vd2.IsValid && Vd3.IsValid && Vd4.IsValid && Vd5.IsValid && Vd6.IsValid && Vd7.IsValid)
            {
                //判断是否为回传页面
                if (IsPostBack)
                {
                    //隐藏“ID”属性为“RegForm”的HTML服务器控件(div),通过STxt控件显示注册信息
                    this.RegForm.Visible = false;
                    this.STxt.Text = "<strong>注册信息验证成功</strong>";
                    this.STxt.Text += "<hr />用户名:" + tb1.Text;
                    this.STxt.Text += "<br />密码:" + tb2.Text;
                    this.STxt.Text += "<br />年龄:" + tb4.Text;
                }
            }
        }
    }
}
【分析】
本题主要考查面试者对常用数据验证控件的应用。验证控件大大减轻了编程者编写表单页面的复杂度,这些验证控件的基本信息如表格11.1所示。
表格11.1  ASP.NET验证控件

验证名称  验证控件类型  作用  
必填字段验证  RequiredFieldValidator  验证指定的控件是否输入了数据  
比较验证  CompareValidator  将指定的控件输入值和另一个控件或数值进行预设的操作比较,验证比较结果是否为true  
取值范围验证  RangeValidator  验证指定的控件输入值是否位于指定的范围内  
正则表达式验证  RegularExpressionValidator  验证指定的控件输入值与正则表达式定义的模式是否匹配  
自定义验证  CustomValidator  使用编程者用自定义的验证逻辑代码检查用户输入值  
验证总结  ValidationSummary  以统一的形式将所有验证控件的错误信息显示在页面的指定位置  
--------------------编程问答--------------------
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,