`
mywebcode
  • 浏览: 998395 次
文章分类
社区版块
存档分类
最新评论

ASP.NET编程之验证控件(Validation Controls)

 
阅读更多

RequiredFieldValidator控件§

该控件用于验证某个输入控件(inputcontrol)是否有需要的值域,一般用法如下:

<asp:RequiredFieldValidator
id="reqFieldEdition"
ControlToValidate="rblEdition"
Display="Static"
InitialValue=""
SetFocusOnError="true"
Width="100%"runat="server">
Messageto show
</asp:RequiredFieldValidator>

下面来讲解几个属性值;

id:该属性值指定了RequiredFieldValidator控件的id号。

ControlToValidate:该属性值指定了RequiredFieldValidator控件验证的控件ID号,上例中表示该RequiredFieldValidator控件验证的是一个id号为rblEdition的控件。

Display:该属性值指定验证控件RequiredFieldValidator的显示方式,如果是Static,表示它的位置是事先分配好的;如果是Dynamic,则当要显示该控件时就动态地挤出一个地方显示。

InitialValue:该属性值指定了要验证控件的初始值,在页面提交时,会把提交时控件值和初始值对比,如果两者一样,就表示验证失败。

SetFocusOnError:该属性值指定为true后,在页面验证失败时,光标会自动定位到第一个验证失败的控件上。

Message toshow:该内容表示的是验证失败时显示的消息内容。





ValidationSummary控件

不同于RequiredFieldValidator控件一对一的进行验证绑定,ValidationSummary控件将页面上所有RequiredFieldValidator控件验证失败的显示内容汇总后一起显示。

页面中RequiredFieldValidator控件需要指明ErrorMessage属性值,用于在验证失败时其错误消息在ValidationSummary控件显示。RequiredFieldValidator一般用法如下:

<asp:RequiredFieldValidator
ID="reqFieldBug"
ControlToValidate="txtBug"
ErrorMessage="Youmust provide bug details"
Display="Static"
Width="100%"
runat="server">
*
</asp:RequiredFieldValidator>

ValidationSummary控件语法:

<asp:ValidationSummary
ID="ValSum"
runat="server"
DisplayMode="BulletList"
HeaderText="Thefollowing errors were found: "
ShowSummary="True"/>




CompareValidator控件

该控件用于比较要验证的目标控件值是否符合某个条件;一般用法如下:

<asp:CompareValidatorrunat="server"
id="CompareValidatorNumPurch"
ControlToValidate="txtNumPurch"
SetFocusOnError="true"
ErrorMessage="Invalid number purchased"
Type="Integer"
Operator="GreaterThan"
ValueToCompare="0">*
</asp:CompareValidator>

其他属性不在介绍了,主要说一下TypeOperator属性。

Type:指明比较的数据类型,可用的Type属性值是StringIntegerDoubleDateCurrency

Operator:该属性值指明比较的操作。可用的值域是:Equal,NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual,DataTypeCheck;几个值代表意义都很明显,其中DataTypeCheck表示的是要验证控件值是否可以转化为目标数据类型。



RangeValidator控件

该控件用于验证目标控件的值是否在某个范围内,一般用法如下:

<asp:RangeValidator
ControlToValidate="txtValue"
ErrorMessage="RangeValidator"
ID="RangeValidator1"
MaximumValue="20"
MinimumValue="10"
runat="server"
Type="Integer">
Between10 and 20 please
</asp:RangeValidator>

其中Type属性同上面CompareValidator控件的Type属性一样的,另外MaximumValueMinimumValue两个属性值指明用于验证目标控件值的范围。



RegularExpressionValidator控件

该控件用于验证目标控件值符合某个表达式的值。一般用法如下:

<asp:RegularExpressionValidator
ControlToValidate="txtValue"
ErrorMessage="RegularExpressionValidator"
SetFocusOnError="true"
ID="RegularExpressionValidator1" runat="server"
ValidationExpression="\d{5}(-\d{4})?">Please enter avalid 5 digit zip code </asp:RegularExpressionValidator>

这里主要介绍一下的是ValidationExpression属性;该属性值指定了目标控件值需要符合的表达式形式,具体写法参看:http://msdn.microsoft.com/zh-tw/library/hs600312(v=vs.80),此外VS自带的工具中列出几个基本表达式形式。



CustomValidator控件

CustomValidator控件将验证从TextBox§SelectionList§控件输入的内容。将CustomValidator控件的ControlToValidate§属性设置为要验证的控件的ID。当包含CustomValidator控件的窗体被发送到服务器时,CustomValidator控件将引发其ServerValidate§事件。一般用法如下:

<asp:CustomValidator
ControlToValidate="txtValue"
ValidateEmptyText="false"
ID="CustomValidator1"
runat="server"
ClientValidationFunction="ClientValidator"
OnServerValidate="ServerValidator">
Please enter an even number
</asp:CustomValidator>

其中ClientValidationFunction属性值指明了客户端的响应函数,OnServerValidate属性值指明了服务器端的响应函数,此例中的客户端的响应函数如下:

<script type="text/javascript">
function ClientValidator(source, args)
{
if (args.Value % 2 == 0)
args.IsValid=true;
else
args.IsValid=false;
return;
}
</script>

服务器端的响应函数如下:

protected void ServerValidator(object source, ServerValidateEventArgse)
{
try
{
int evenNumber = Int32.Parse(e.Value);
if (evenNumber % 2 == 0)
e.IsValid = true;
}
catch (Exception)
{
// error handler here
}
}


ValidationGroup属性

上面的讲解中,每次页面刷新时,页面中所有设定的目标控件都会被验证,但是在实际应用中,可能一次只需验证页面的某一组控件即可。这就是ValidationGroup属性值的实际用途了。假设有两组控件(Group1Group2)和两个button控件(button1button2)button1控件按下时只需要验证的是Group1控件组而忽略Group2控件组,button2控件按下时需要验证的是Group2控件组而忽略Group1控件组。如何利用ValidationGroup属性实现呢?其实很简单的。只需在Group1控件组的验证控件和与之对应的button1按钮控件添加属性域:ValidationGroup="Group1",在Group2控件组的验证控件和与之对应的button2按钮控件添加属性域:ValidationGroup="Group2"

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics