虽然大部分时间一直从事asp.net的开发,对于一些常用的asp.net服务器端验证控件及它们的组合使用比较熟悉,如:
CompareValidator ——比较验证控件
RangeValidator ——范围验证控件
RegularExpressionValidator ——正则验证控件
RequiredFieldValidator ——必填验证控件
但是一直没去研究CustomValidator控件的用法,心中自然也有一种想法:好不容易从写js验证的痛苦中摆脱出来,如今是能不回去就不要回去了,但是有时候又会遇到一些用上面提到的验证控件没有办法做到的情况(当然是指在客户端没办法做到,我要是说在服务器端没办法做到就让大家笑掉大牙了),用自然想它在客户端完成验证了,至少也要先在客户端验证一下,通过客户端验证再到服务器端验证,这样减少数据的往返时间,降低网络流量和保证反应及时性。
CustomValidator 是一个提供灵活验证方式的控件,它也能在客户端和服务器端验证,分别提供了两种验证的方法原型:
服务器端验证:
voidServerValidation(objectsource,ServerValidateEventArgsargs)
客户端验证(js):
functionValidationFunctionName(source,arguments)
无论对于客户端验证还是服务器端验证,设置通过验证的办法就是将第二个参数的IsValid属性设置为true即可,反之设置为false。
下面我以两个例子来讲述如何使用CustomValidator 来进行验证,第一个用法是用来验证TextBox,第二个用法是验证CheckBoxList,确保其中只能选中一项,而且必须选中一项,对于TextBox这类的控件,我这里设置了对应的CustomValidator 的ValidateEmptyText="True"属性,这样即使控件值为空也能得到验证。
全部代码如下(这里是cs代码和html代码混合的模式):
<%@PageLanguage="C#"ContentType="text/html"ResponseEncoding="gb2312"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<metaname="keywords"content="CustomValidator控件用法"/>
<metaname="description"content="周公讲述CustomValidator控件用法"/>
<title>CustomValidator控件用法</title>
</head>
<scriptlanguage="javascript"type="text/javascript">
functionClientValidateUserName(source,args)
{
//alert(source);source=CustomValidator1,为验证控件
//alert(args);
varobj=document.getElementById("txtUserName");
if((obj.value=="")||(obj.value.length>10))
{
args.IsValid=false;
}
else
{
args.IsValid=true;
}
}
functionCheckCheckBoxList(source,args)
{
varobj=document.getElementById('<%=this.cbAgeRangeList.ID%>');//返回具有和属性id的值相同或相似的对象集合
vark,right=false;
varlength=(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>
<scriptrunat="server">
protectedvoidPage_Load(ObjectSrc,EventArgsE)
{
if(!IsPostBack)DataBind();
}
publicvoidServerValidateUserName(objectsource,ServerValidateEventArgsargs)
{
if((string.IsNullOrEmpty(txtUserName.Text))||(txtUserName.Text.Length>10))
{
args.IsValid=false;
}
else
{
args.IsValid=true;
}
}
</script>
<body>
<formrunat="server">
UserName:<asp:TextBoxID="txtUserName"runat="server"/>
<asp:CustomValidatorID="CustomValidator1"runat="server"ErrorMessage="错误信息"ControlToValidate="txtUserName"ClientValidationFunction="ClientValidateUserName"ValidateEmptyText="True"></asp:CustomValidator>
<asp:ButtonID="btnValid1"runat="server"Text="验证用户名"/>
<asp:CheckBoxListID="cbAgeRangeList"runat="server"Height="36px"Width="400px"RepeatDirection="Vertical">
<asp:ListItemValue="1"><16</asp:ListItem>
<asp:ListItemValue="2">16-22</asp:ListItem>
<asp:ListItemValue="3">22-30</asp:ListItem>
<asp:ListItemValue="4">30-40</asp:ListItem>
<asp:ListItemValue="5">40-50</asp:ListItem>
<asp:ListItemValue="6">50-60</asp:ListItem>
<asp:ListItemValue="6">60-80</asp:ListItem>
<asp:ListItemValue="6">>80</asp:ListItem>
</asp:CheckBoxList>
<asp:customvalidatorid="CustomValidator2"runat="server"
ErrorMessage="请正确选择年龄段"ClientValidationFunction="CheckCheckBoxList"></asp:customvalidator>
</form>
</body>
</html>
运行结果:
分享到:
相关推荐
**一、添加CustomValidator控件** 在网页设计界面(如ASPX文件)中,我们可以直接拖放`CustomValidator`控件到合适的位置,或者通过代码方式添加。例如: ```html <asp:CustomValidator ID="CustomValidator1" ...
在本例中,我们探讨的是如何使用CustomValidator控件来实现客户端验证用户输入的IP地址的有效性。客户端验证意味着验证过程在用户设备的浏览器中执行,减少了服务器的负载,并能提供更快的反馈。 首先,我们需要...
本文将深入探讨如何使用CustomValidator控件和JavaScript来实现这一功能,特别是针对ListBox控件。 CustomValidator控件是ASP.NET提供的一种自定义验证控件,允许开发者编写自己的验证逻辑,而不仅仅是依赖于预定义...
主要介绍了如下VS2005控件的定义、属性、用法、实例和示例: LinkButton 控件 ListBox 控件 Literal 控件 Panel 控件 PlaceHolder 控件 RadioButton 控件 RadioButtonList 控件 Style 控件 Table 控件 TableCell 控件...
下面将详细解释`CustomValidator`的核心概念和使用方法。 1. **创建自定义验证器** 在WinForm中,首先需要在设计界面或通过代码添加`CustomValidator`控件。然后,为`Validate`事件分配一个事件处理程序,这个处理...
通过NetTPnew4.ppt这样的资源,开发者可以深入学习Web控件和验证控件的用法,包括实例演示、配置方法和最佳实践,从而提升开发效率和应用质量。对于初学者来说,这是一个了解和掌握这些核心概念的良好起点。在实践中...
CustomValidator控件允许你指定客户端验证函数和服务器端验证函数,这两个函数将在客户端和服务器端分别执行,确保数据在任何情况下都有效。你可以根据业务需求编写JavaScript函数(对于客户端验证)和C#或VB.NET...
ASP.NET控件的使用方法 在ASP.NET编程中,控件是非常重要的一部分,本文将详细介绍ASP.NET控件的使用方法,包括服务器控件和HTML控件的区别、控件的添加事件、控件的属性设置、验证控件等。 服务器控件和HTML控件 ...
除了上述内置控件,.NET还支持CustomValidator控件,它允许开发者编写自定义的JavaScript和C#验证函数,以满足更复杂的需求。 在实际项目中,你可能还需要考虑客户端验证和服务器端验证的结合使用。客户端验证可以...
5. **CustomValidator**:这个控件允许开发者自定义验证逻辑。可以编写服务器端或客户端代码来检查输入数据,适用于复杂或特定的验证需求。 除了这五个内置验证控件,还有**ValidationSummary**控件,它不执行验证...
- **功能概述:** CustomValidator控件允许开发者编写自定义的服务器端或客户端脚本来执行复杂的验证逻辑。 - **应用场景:** 当标准的验证控件无法满足需求时,可以使用该控件。 - **配置参数:** - `...
- 使用CustomValidator控件时,可以定义客户端和服务器端的验证方法,实现特定的验证逻辑。 5. **验证事件**: - **ServerValidate**:服务器端验证事件,自定义验证时使用。 - **Validate**:客户端验证事件,...
### C#验证控件的使用方法详解 #### 引言 在Web应用程序开发过程中,确保用户输入的有效性和正确性是至关重要的一步。ASP.NET提供了一系列内置的验证控件,可以帮助开发者轻松实现这一目标。本文将详细介绍ASP.NET...
3.6 使用CustomValidator控件 105 3.7 使用ValidationSummary控件 111 3.8 创建自定义验证控件 114 3.8.1 创建LengthValidator控件 115 3.8.2 创建AjaxValidator控件 117 3.9 小结 121 第4章 使用Rich控件 122 4.1 ...
CustomValidator控件提供了一种自定义验证方法,允许开发者编写自己的验证逻辑。这在需要特定业务规则或无法用其他验证控件实现的验证时非常有用。主要属性包括: - `ControlToValidate`:要验证的控件ID。 - `...
为了更深入地学习,你可以查看压缩包中的Keymo_Validator文件,其中可能包含示例代码和详细的步骤,让你能够实际操作和理解这些验证控件的使用方法。通过实践,你会更加熟练地掌握如何在ASP.NET中运用这些验证控件,...
在Asp.net开发中,验证码控件是一种常用的安全机制,用于防止自动机器人或者恶意脚本进行非法操作,如批量注册、频繁提交表单等。...了解其工作原理、类型和使用方法,对于Asp.net开发者来说至关重要。
5. **自定义验证**:如果内置的验证控件无法满足需求,可以使用CustomValidator控件进行自定义验证。开发者可以提供JavaScript函数来进行客户端验证,并在服务器端提供一个方法进行相同验证。 6. **与数据绑定控件...
6. **CustomValidator控件**:提供更灵活的验证选项,允许开发者编写自己的客户端和服务器端验证函数。 7. **错误提示**:验证失败时,可以通过ValidationSummary控件集中显示所有验证错误,提供用户友好的反馈。 ...