快速业务通道

asp.net夜话之九:验证控件(一)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-03
ToCompare属性优先。

CompareValidator控件用得比较多的场合就是用于确保用户在注册时两次输入的密码一致,还有在某些场合下有一定先后顺序的日期数据,比如某个事件的开始日期和结束日期。

经常看香港警匪片的朋友一定会对警察抓捕嫌疑犯时经常说的那句“你有权保持沉默,但是你所说的将来会成为呈堂证供”不陌生,在asp.net中除了RequiredFieldValidator控件之外,CompareValidator控件、RangeValidator控件和RegularExpressionValidator控件对待所验证的控件也是持这种态度:所验证的控件如果没有任何输入也是能通过验证的,但是如果输入的数据不符合验证规则就不能通过验证!要是要求用户必须输入并且还要符合一定规则,上述的控件就需要结合RequiredFieldValidator控件共同验证。

在下面的例子中要用户填写一个旅游申请,要填写的数据有旅游出发时间、旅游人数、旅游经费及旅游结束时间。根据业务规则,在这个表单中有如下要求:

(1)出发时间一定早于结束时间。

(2)旅游人数一定要大于0(一个人都不参加这个旅游就没有意义了)。

(3)旅游经费可以不填写(难以估算),但一旦填写就必须填写大于0.00的金额。

在这里所有的验证都是用CompareValidator控件结合RequiredFieldValidator控件来进行验证,RequiredFieldValidator控件验证所验证的控件是否填写了数据,CompareValidator控件负责进行比较验证,代码如下:

<%@ 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">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CompareValidator灵活使用的例子</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table border="1" width="600">
<tr><td colspan="2" align="center">旅游活动申请表</td></tr>
<tr><td>
开始时间</td><td>
<asp:TextBox ID="txtStartDate" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtStartDate"
ErrorMessage="用户名必须填写"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="开始日期必须早于结束日期" ControlToCompare="txtStartDate" ControlToValidate="txtEndDate" Operator="GreaterThanEqual" Type="Date"></asp:CompareValidator></td></tr>
<tr><td>
结束时间</td><td>
<asp:TextBox ID="txtEndDate" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtEndDate"
ErrorMessage="请填写结束时间"></asp:RequiredFieldValidator>
</td></tr>
<tr><

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号