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>
其他属性不在介绍了,主要说一下Type和Operator属性。
Type:指明比较的数据类型,可用的Type属性值是String,Integer,Double,Date,Currency;
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属性一样的,另外MaximumValue和MinimumValue两个属性值指明用于验证目标控件值的范围。
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属性值的实际用途了。假设有两组控件(Group1和Group2)和两个button控件(button1和button2),button1控件按下时只需要验证的是Group1控件组而忽略Group2控件组,button2控件按下时需要验证的是Group2控件组而忽略Group1控件组。如何利用ValidationGroup属性实现呢?其实很简单的。只需在Group1控件组的验证控件和与之对应的button1按钮控件添加属性域:ValidationGroup="Group1",在Group2控件组的验证控件和与之对应的button2按钮控件添加属性域:ValidationGroup="Group2"。