CustomValidator控件用法

CustomValidator控件用法虽然大部分时间一直从事asp.net的开发,对于一些常用的asp.net服务器端验证控件及它们的组合使用比较熟悉,如:CompareValidator——比较验证控件RangeValidator——范围验证控件RegularExpressionValidator——正则验证控件RequiredFieldValidator——必填验证控件但是一直没去研究CustomValidator控件的用

虽然大部分时间一直从事asp.net的开发,对于一些常用的asp.net服务器端验证控件及它们的组合使用比较熟悉,如:
CompareValidator ——比较验证控件
RangeValidator ——范围验证控件
RegularExpressionValidator ——正则验证控件
RequiredFieldValidator ——必填验证控件
但是一直没去研究CustomValidator控件的用法,心中自然也有一种想法:好不容易从写js验证的痛苦中摆脱出来,如今是能不回去就不要回去了,但是有时候又会遇到一些用上面提到的验证控件没有办法做到的情况(当然是指在客户端没办法做到,我要是说在服务器端没办法做到就让大家笑掉大牙了CustomValidator控件用法),用自然想它在客户端完成验证了,至少也要先在客户端验证一下,通过客户端验证再到服务器端验证,这样减少数据的往返时间,降低网络流量和保证反应及时性。

CustomValidator 是一个提供灵活验证方式的控件,它也能在客户端和服务器端验证,分别提供了两种验证的方法原型:
服务器端验证:

void
 ServerValidation (
object
 source, ServerValidateEventArgs args)

客户端验证(js):

function
 ValidationFunctionName(source, arguments)

无论对于客户端验证还是服务器端验证,设置通过验证的办法就是将第二个参数的IsValid属性设置为true即可,反之设置为false。

下面我以两个例子来讲述如何使用CustomValidator 来进行验证,第一个用法是用来验证TextBox,第二个用法是验证CheckBoxList,确保其中只能选中一项,而且必须选中一项,对于TextBox这类的控件,我这里设置了对应的CustomValidator 的ValidateEmptyText=”True”属性,这样即使控件值为空也能得到验证。

全部代码如下(这里是cs代码和html代码混合的模式):

<%
@ Page Language
=

C#

 ContentType
=

text/html

 ResponseEncoding
=

gb2312

 
%>


<!
DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”
>


<
html 
xmlns
=”http://www.w3.org/1999/xhtml”
>


<
head
>


<
meta 
http-equiv
=”Content-Type”
 content
=”text/html; charset=gb2312″
 
/>


<
meta 
name
=”keywords”
 content
=”CustomValidator控件用法”
 
/>


<
meta 
name
=”description”
 content
=”周公讲述CustomValidator控件用法”
 
/>


<
title
>
CustomValidator控件用法
</
title
>


</
head
>


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

    

function
 ClientValidateUserName(source,args)
    {

        

//
alert(source);source=CustomValidator1,为验证控件


        
//
alert(args);


        
var
 obj
=
document.getElementById(

txtUserName

);
        

if
((obj.value
==
“”
)
||
(obj.value.length
>
10
))
        {

            args.IsValid

=
false
;
        }
        

else

        {

            args.IsValid

=
true
;
        }
    }
    
    

function
 CheckCheckBoxList(source,args)
    {

        

var
 obj
=
document.getElementById(

<%=this.cbAgeRangeList.ID%>

);
//
返回具有和属性id的值相同或相似的对象集合


        
var
 k,right
=
false
;
        

var
 length
=
(obj.all.tags(

input

).length);
//
返回obj对象里具有“input”标签对象的集合


        
for
(k
=
0
;k
<
length;k
++
)
        {

            

//
alert(” name:”+obj.all.tags(‘input’)[k].name+”是否:”+obj.all.tags(‘input’)[k].checked);


            
if
(obj.all.tags(

input

)[k].checked) 
//
 obj对象里具有input标签对象键值为k的属性为checked的值


            {

                right

=!
right;
            }
                        
        }
        

if
(right)
        {

            args.IsValid

=
true
;
        }
        

else

        {

            args.IsValid

=
false
;
        }
    }

</
script
>


<
script 
runat
=”server”
>

protected 

void
 Page_Load(Object Src, EventArgs E)
{

  

if
 (
!
IsPostBack) DataBind();
}

public 
void
 ServerValidateUserName(object source, ServerValidateEventArgs args)
{

    

if
((string.IsNullOrEmpty(txtUserName.Text))
||
(txtUserName.Text.Length
>
10
))
    {

        args.IsValid

=
false
;
    }
    

else

    {

        args.IsValid

=
true
;
    }
}

</
script
>


<
body
>


<
form 
runat
=”server”
>

  UserName:

<
asp:TextBox 
ID
=”txtUserName”
 runat
=”server”
 
/>

  

<
asp:CustomValidator 
ID
=”CustomValidator1″
 runat
=”server”
 ErrorMessage
=”错误信息”
 ControlToValidate
=”txtUserName”
 ClientValidationFunction
=”ClientValidateUserName”
 ValidateEmptyText
=”True”
></
asp:CustomValidator
>

  

<
asp:Button 
ID
=”btnValid1″
 runat
=”server”
 Text
=”验证用户名”
 
/>

  

<
asp:CheckBoxList 
ID
=”cbAgeRangeList”
 runat
=”server”
 Height
=”36px”
 Width
=”400px”
 RepeatDirection
=”Vertical”
>

    

<
asp:ListItem 
Value
=”1″
>
&lt;
16
</
asp:ListItem
>

    

<
asp:ListItem 
Value
=”2″
>
16-22
</
asp:ListItem
>

    

<
asp:ListItem 
Value
=”3″
>
22-30
</
asp:ListItem
>

    

<
asp:ListItem 
Value
=”4″
>
30-40
</
asp:ListItem
>

    

<
asp:ListItem 
Value
=”5″
>
40-50
</
asp:ListItem
>

    

<
asp:ListItem 
Value
=”6″
>
50-60
</
asp:ListItem
>

    

<
asp:ListItem 
Value
=”6″
>
60-80
</
asp:ListItem
>

    

<
asp:ListItem 
Value
=”6″
>
&gt;
80
</
asp:ListItem
>

  

</
asp:CheckBoxList
>

  

<
asp:customvalidator 
id
=”CustomValidator2″
 runat
=”server”
 
ErrorMessage

=”请正确选择年龄段”
 ClientValidationFunction
=”CheckCheckBoxList”
></
asp:customvalidator
>


</
form
>


</
body
>


</
html
>

运行结果:


CustomValidator控件用法今天的文章CustomValidator控件用法分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12205.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注