[asp.net] 验证控件

本文介绍了ASP.NET中的验证控件,包括RequiredFieldValidator、RangeValidator、CompareValidator、RegularExpressionValidator和CustomValidator。详细讲解了各个控件的用途、属性及应用场景,并提供了实例代码,如检查字段必填、值范围、数据类型、正则表达式匹配以及自定义验证。此外,还讨论了如何使用Validator的IsValid属性、Display属性以及验证组,以及如何利用ValidationSummary控件汇总错误信息。
摘要由CSDN通过智能技术生成
.aspx
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="此用户名已注册过" ControlToValidate = "txtName" OnServerValidate ="ValidateName"> 
</asp:CustomValidator> 

,aspx.cs

public void ValidateName(Object sender, ServerValidateEventArgs args) 
{ 
SqlConnection myConn = new SqlConnection("Data Source=(local);Initial Catalog=Csharp;Integrated Security=True"); 
myConn.Open(); 
SqlCommand myCmd = new SqlCommand("select use_account from users", myConn); 
SqlDataAdapter myDa = new SqlDataAdapter(myCmd); 
DataSet myDs = new DataSet(); 
myDa.Fill(myDs); 
for (int i = 0; i < myDs.Tables[0].Rows.Count; i++) 
{ 
if (args.Value.ToString() == myDs.Tables[0].Rows[i][0].ToString()) 
{ 
args.IsValid = false; 
break; 
} 
else 
{ 
args.IsValid = true; 
} 
} 
} 

通过自定义服务器端的函数代码,与前台验证控件关联 ,形成一种假客户端—当前页面验证的效果。 
以上面前台验证控件这段代码为例: 
ErrorMessage属性表示当验证不合法时,出现错误的信息; 
ControlToValidate属性表示需验证的控件ID; 

OnServerValidate属性表示与自定义函数相关联,以在服务器上执行验证; 


ASP.Net提供了如下的验证控件:

RequiredFieldValidator:字段必填。

RangeValidator:值在给定的最大值、最小值之间;

CompareValidator:用于比较两个值的关系是否满足要求或者是否是指定类型的数据;

RegularExpressionValidator:校验数据满足正则表达式;

CustomValidator:自定义验证。

 

RequiredFieldValidator

ControlToValidate设定要验证的控件,Text设置为当被验证的控件属性为空的时候显示的错误信息,Text不仅可以写普通文本,还可以写任何HTML内容。也可以使用ErrorMessage设置发送错误的时候显示的消息。

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"

ControlToValidate="TextBox1" ErrorMessage="不能为空"></asp:RequiredFieldValidator>

有时候控件如果是默认值也认为是空值,比如下拉列表的选中值为”--选中性别--”,文本框的值为”填入搜索关键字”,只要将RequiredFieldValidator的InitialValue属性设置为” --选中性别--”、” 填入搜索关键字”就可以了。

<asp:TextBox ID="TextBox1" runat="server">请输入关键词</asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"

ControlToValidate="TextBox1" ErrorMessage="不能为空"

InitialValue="请输入关键词”></asp:RequiredFieldValidator>

 

Validator共性

页面中的IsValid属性用来判断页面中的所有Validator是否校验通过,只有都校验通过才为True,即使页面中的Validator服务端校验报错(禁用javascript就可以跳过客户端校验),在服务端方法中的业务代码(比如btn1_Click)也会被执行,因此如果代码在数据校验不通过的不能执行则需要判断IsValid的值。

        protected void Button1_Click(object sender, EventArgs e)

        {

            if (this.IsValid)

            {

                //防止跳过客户端校验。因为如果跳过客户端校验,哪怕服务端没有校验过,Button_Click方法也会被调用。IsValid表示页面中所有Validator是否都通过了。

            }

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值