.NET之验证控件大全

来源:互联网 发布:老马说编程 编辑:程序博客网 时间:2024/05/02 01:31

1.RequiredFieldValidator:非空验证控件 
主要属性: 
ControlToValidate :要验证的控件ID 
ErrorMessage :验证的控件无效时显示的消息 
InitialValue :要验证的字段的初始值,很少用到


2.CompareValidator:比较验证控件 
主要属性: 
ControlToCompare :用于进行比较的控件ID 
ControlToValidate :要验证的控件ID 
ErrorMessage :验证的控件无效时显示的消息 
Operator :对值进行比较操作,默认为Equal(=) 
Type:用于比较的值的数据类型 

Operator 属性

说明

Equal

所验证的输入控件的值与其他控件的值或常数值之间的相等比较。

NotEqual

所验证的输入控件的值与其他控件的值或常数值之间的不等比较。

GreaterThan

所验证的输入控件的值与其他控件的值或常数值之间的大于比较。

GreaterThanEqual

所验证的输入控件的值与其他控件的值或常数值之间的大于或等于比较。

LessThan

所验证的输入控件的值与其他控件的值或常数值之间的小于比较。

LessThanEqual

所验证的输入控件的值与其他控件的值或常数值之间的小于或等于比较。

DataTypeCheck

输入到所验证的输入控件的值与 Type属性指定的数据类型之间的数据类型比较。如果无法将该值转换为指定的数据类型,则验证失败。

如果Operator属性为DataTypeCheck,将忽略ControlToCompare 和 ValueToCompare属性,同时Type属性起作用。

Type属性说明

String

指定字符串数据类型。

Integer

指定 32 位有符号整数数据类型。

Double

指定双精度浮点数数据类型。

Date

指定日期数据类型。

Currency

指定货币数据类型


3.RangeValidator:数据范围验证控件 
主要属性: 
ControlToValidate :要验证的控件ID 
ErrorMessage :验证的控件无效时显示的消息 
MaximumValue:所验证控件的最大值 
MinimumValue:所验证控件的最小值


4.RegularExpressionValidator:数据格式验证控件 
主要属性: 
ControlToValidate :要验证的控件ID 
ErrorMessage :验证的控件无效时显示的消息 
ValidationExpression:用于确定有效性的正则表达式,系统默认提供了几个正则表达式,如果需要自己新建,就要了解正则表达式的意义,推荐一篇网摘:正则表达式整理备忘

正则表达式说明方括号“[ ]”用与定义可接受的字符。[abc123] 表示控件只能接受 a,b,c,1,2,3 这6个字符反集合符号 “ ^ ”用于定义不可以接受的字符。[^a-h] 表示控件除了 a 到 h 8个字符外,都可以接受花括号“{ }”定义必须输入的字符个数。{6}表示只能输入6个字符 ; {6,}表示必须输入6个以上,无上限 ; {2,6} 表示必须输入2至6个字符;但是花括号必须放在方括号后面,例如 [a-z]{4} 表示必须输入 4位a和z之间的任意字符小圆点 “ . ”用于代表任意字符。 例如 .{3,6}表示接受3到6个任意字符。竖线 “ | ”用于表示 “或”的逻辑符号。例如 [1-9]{3,6}|[A-Za-z]{3} 表示可以接受 3到6个数字或者 3个字母。 (大小写都可以区别的哦)小括号“ () ”用于分块,与数字运算中的小括号作用类似斜线 “ \ ”若希望可以接受的字符包含上述特殊字符。例如 \([0-9]{3}\),表示输入格式为“(xxx)”的电话区号


5.ValidationSummary:验证错误信息显示控件 
主要属性: 
DisplayMode:摘要显示格式 
ShowMessageBox:是否弹出错误的消息对话框 
ShowSummary:是否显示错误摘要文本


6.CustomValidator:自定义验证控件 
主要属性: 
ControlToValidate :要验证的控件ID 
ErrorMessage :验证的控件无效时显示的消息 
ValidateEmptyText:控件文本为空时,是否验证控件 
ClientValidationFunction:客户端脚本验证功能,默认为空。如希望在服务器添加验证,则使其为空并填写ServerValidate事件,如希望在客户端添加验证,则该属性值为JavaScript的function名。
主要事件: 
客户端验证:ClientValidationFunction="clientv"
<script type="text/jscript">
function clientv(s,e)
{
if(e.Value=="客户端")
{
e.IsValid=true;
}
else
{
e.IsValid=false;
}
}
</script>
服务器验证:ClientValidationFunction=""
ServerValidate:调用以在服务器上执行验证;双击控件或者选用事件。

.NET基础之验证控件 - jasondct - jasondct例题:判断输入是否为偶数


7.禁用验证控件 
在特定条件下,可能需要避开验证,可以通过以下3种方式禁用数据验证:

  • 在特定控件中禁用验证:将相关控件的CausesValidation属性设置为false
  • 禁用验证控件:将验证控件的Enabled属性设置为false
  • 禁用客户端验证:将验证控件的EnableClientScript属性设置为false
命运负责洗牌,但是玩牌的是我们自己!

javascript 函数和 CustomValidator控件相结合使用

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

<asp:CustomValidatorid="CVPwdPrompt"runat="server" ClientValidationFunction="CheckPwd"ControlToValidate="txtPwdPrompt" ErrorMessage="<spanstyle='font:12px'>提示问题必须在2-50个字符内</span>"Display="None"></asp:CustomValidator>

Javascript函数:

<script language="javascript" type="text/javascript">

functionClientValidation(source,value)

{

varstr = value.Value;

varlen = 0;

for(var i=0;i<str.length;i++)

{

if(str.charCodeAt(i)<128)

len++;

else

len+=2;

}

if(len>5)

value.IsValid = true;

else

value.IsValid = false;

}

functionCheckPwd(source, arguments) {

if(arguments.Value.length > 2 && arguments.Value.length < 11)

{

arguments.IsValid = true;

alert("验证通过!");

}

else

{

arguments.IsValid = false;

alert("请输入密码的长度3到10之间!");

}

}

</script>

函数有两个参数:

source 参数是对为 CustomValidator 控件呈现的 <span> 元素的引用。因此,您可以编程的方式控制 <span> 标记,如修改 InnerHtml 属性。

arguments 参数是一个具有以下两个属性的对象:Value 和 IsValid。使用此参数可以获取控件的值,以根据自定义验证例程验证并指示该值是否有效。

使用 ClientValidationFunction 属性指定与 CustomValidator 控件关联的客户端验证脚本函数的名称。由于该脚本函数在客户端执行,因此该函数必须使用目标浏览器支持的语言(如 VBScript 或 JScript)来编写。

服务器端验证与客户端验证一样,可以通过使用 arguments 参数的 Value 属性来访问要验证的输入控件中的字符串。通过设置 arguments 参数的 IsValid 属性返回验证结果。

代码如下:

protectedvoid cvLength_ServerValidate(object source, ServerValidateEventArgsargs)

{

if(args.Value.Length > 5)

{

args.IsValid = true;

}

else

{

args.IsValid = false;

}

}

注意:Value首字母必须大写

------------------------------------------------------------------------------------------------------------------------------

CustomValidator验证控件使用

CustomValidator控件允许用户自定义验证,可以在服务器端验证,可以在客户端验证,也可以在客户端和服务端同时验证

下面的例子是验证一个数能否被2整除

1. 服务器端验证
在验证的时候会用到IsValid这个属性,根据IsValid的值(true/false)来判断是否通过页面验证。

a. 拖放控件TextBox用于输入值;Button用于测试验证状态,IsValid为true触发Click事件;CustomValidator控制要验证的对象和验证事件等。

b. 设置CustomValidator的属性这里设置ErrorMessage为Not an even number!,ControlToValidate为Text1

c. 编写CustomValidator的ServerValidation事件

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{

try
{
int num = int.Parse(args.Value); 
args.IsValid = ((num%2)==0);
}
catch (Exception ex)
{
args.IsValid = false;
}
}

d. 编写Button的Click事件

protected void Button2_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Response.Redirect("gouWuChe.aspx");
}
else
{
//提示
}

}

2. 客户端验证

使用javascript function验证,并用设置ClientValidationFunction为javascript 验证函数(function)

a. Javascript 函数

<script language="javascript">

function ValidateNumber(source,args)

{

if(args.Value%2==0)

{

args.IsValid=true;

}

else

{

args.IsValid=false;

}

}

</script>

b. 设置CustomValidator的属性这里设置ErrorMessage为请输入能被2整除的数,ControlToValidate为TextBox1,ClientValidationFunction为ValidateNumber

c. 编写Button的Click事件

protected void Button2_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Response.Redirect("gouWuChe.aspx");
}
else
{
//提示
}

}

3. 客户端和服务端同时验证

将上面的两部分代码合并可以了


原创粉丝点击