C#验证控件的使用RequiredFieldValidatorCompareValidator

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#验证控件的使⽤RequiredFieldValidatorCompareValidator
使⽤验证控件可以向服务器提交表单数据时验证表单内容,下⾯以RequiredFieldValidator和CompareValidator为例说明验证控件的⽤法
RequiredFieldValidator⽤来检查必填字段CompareValidator控件可以⽤来检查数据类型或者⽐较⼤⼩。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ValidationControl.aspx.cs" Inherits="WebApplication1.ValidationControl" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head runat="server">
<title></title>
<style type ="text/css">
.red
{
color:Red ;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<fieldset >
<legend title ="123">Product Order Form </legend>
<asp:Label ID ="lblProductName" runat ="server" Text =" Product Name:" AssociatedControlID ="txtProductName"></asp:Label>
<br />
<asp:TextBox ID ="txtProductName" runat ="server"></asp:TextBox>
<asp:RequiredFieldValidator ID ="reqProductName" ControlToValidate="txtProductName" runat ="server" Text ="(Require)" CssClass ="red " SetFocusOnError ="true"></asp:RequiredFieldValidator>
<br />
<asp:Label ID ="lblPrice" runat ="server" Text ="Price:" AssociatedControlID ="txtPrice"></asp:Label>
<asp:TextBox ID ="txtPrice" runat ="server"></asp:TextBox>
<asp:RequiredFieldValidator ID ="reqPrice" runat ="server" ControlToValidate="txtPrice" Text ="(Require)" CssClass ="red " SetFocusOnError ="true"></asp:RequiredFieldValidator>
<asp:CompareValidator ID ="comPrice" runat ="server" ControlToValidate ="txtPrice" Operator ="DataTypeCheck" Text ="Invalid Value" Type ="Currency" CssClass ="red " SetFocusOnError ="true"></asp:CompareValidator <br />
<asp:Label ID ="lblQty" runat ="server" Text ="Qty:" AssociatedControlID ="txtQty"></asp:Label>
<asp:TextBox ID ="txtQty" runat ="server"></asp:TextBox>
<asp:CompareValidator ID ="comQty" runat ="server" ControlToValidate="txtQty" Text ="Invalid Value" CssClass ="red " Display ="Dynamic" Operator ="DataTypeCheck" Type ="Integer" SetFocusOnError ="true"></asp:CompareValida <br />
<asp:Button ID ="txtSummit" runat ="server" Text ="提交" onclick="txtSummit_Click"/>
</fieldset>
<asp:Label ID ="lblResult" runat ="server"></asp:Label>
</div>
</form>
</body>
</html>
View Code
public partial class ValidationControl : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void txtSummit_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
lblResult.Text = "Product Name:" + txtProductName.Text + "<br/>" +
"Price:" + txtPrice.Text + "<br/>" +
"Qty:" + txtQty.Text;
}
}
}
View Code
例⼦说明:
1.验证控件ControlToValidate属性⽤于指定需要验证的控件;
2.验证控件的Text属性⽤于验证错误时显⽰错误信息,⼀般Text属性只是简单的⽂字,但是Text属性也⽀持html,⽐如<img src="error.gif" ali=""/>⽤⼀个图⽚代替简单的⽂字;
3.如果要验证信息显⽰红⾊,或者别的特殊样式,可以使⽤CssClass指定样式;
4.验证控件的 Display属性,Display属性有Dynamic、Static、None三个值,默认Static,
Display为Static时⽣成的错误信息如下
<span id="reqPrice" class="red " style="visibility: visible;">(Require)</span>
Display为Dynamic⽣成的错误信息为
<span id="reqPrice" class="red " style="display: none;">(Require)</span>
两者的区别是visibility: visible虽然隐藏了,但还是占据窗⼝空间,display: none不占窗⼝空间,我们应该设置Display为Dynamic这样验证信息后⾯的控件就不会被推倒右边
None ⽣成的标签如下,错误信息为空,所以不能⽤来显⽰错误提⽰
<span id="reqPrice" class="red " style="display: none;"></span>
5.验证控件默认在客户端和服务器端都进⾏验证,⼀些低端的浏览器不⽀持JavaScript,所以在服务器端进⾏验证能保证数据的有效性。

可以使⽤EnableClientScript ="false"禁
⽤客户端验证。

6.在带有验证控件的页⾯提交数据时需要检查 Page.IsValid属性,因为假如客户端验证不⽣效,服务器端虽然会进⾏验证,但是并不会阻⽌数据提交,只是简单的显⽰错误信
息,如
protected void txtSummit_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
lblResult.Text = "Product Name:" + txtProductName.Text + "<br/>" +
"Price:" + txtPrice.Text + "<br/>" +
"Qty:" + txtQty.Text;
}
}
7.使⽤SetFocusOnError ="true"来让控件验证不通过时获取焦点,如果有⼏个验证控件同时设置,第⼀个控件或者焦点,因为同⼀个时间只能有⼀个控件获得焦点。

8.可以使⽤Page.Validators访问所有的验证控件,或者设置特殊样式。

Page_PreRender事件发⽣在所有控件事件之后,Page_load事件发⽣在所有控件事件之前protected void Page_PreRender(object sender, EventArgs e)
{
foreach (BaseValidator c in Page.Validators)
{
if (c.IsValid)
c.BackColor = System.Drawing.Color.Yellow;
else
c.BackColor = System.Drawing.Color.White;
}
}。

相关文档
最新文档