ASP.NET - 如何:使用自定义函数对 ASP.NET 服务器控件进行验证

本文介绍如何使用CustomValidator控件及自定义服务器端和客户端验证函数进行用户输入的有效性检查。包括设置验证控件属性、编写服务器端验证逻辑以及客户端ECMAScript验证函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      如果现有的 ASP.NET 验证控件无法满足需求,您可以定义一个自定义的服务器端验证函数,然后使用 CustomValidator 控件来调用它。您还可以通过编写 ECMAScript (JavaScript) 函数,重复服务器端方法的逻辑,从而添加客户端验证,在提交页面之前检查用户输入内容。

即使使用了客户端检查,您也应该执行服务器端的验证。服务器端的验证有助于防止用户通过禁用或更改客户端脚本来避开验证。

 

一、使用自定义函数在服务器上验证

1、将一个 CustomValidator 控件添加到页面中并设置下列属性:

属性

说明

ControlToValidate

正在验证的控件的 ID

ErrorMessage, Text, Display

这些属性指定验证失败时要显示的错误的文本和位置。

 

2、为控件的 ServerValidate 事件创建一个基于服务器的事件处理程序。这一事件将被调用来执行验证。方法具有如下签名:

protected void ValidationFunctionName(object source, ServerValidateEventArgs args)

{

 

}

      source 参数是对引发此事件的自定义验证控件的引用。属性 args.Value 将包含要验证的用户输入内容。如果值是有效的,则将 args.IsValid 设置为 true;否则设置为 false

下面的代码示例显示了如何创建自定义验证。事件处理程序确定用户输入是否为 8 个字符或更长。

protected void TextValidate(object source, ServerValidateEventArgs args)

{

    args.IsValid = (args.Value.Length >= 8);

}

 

3、使用如下代码将事件处理程序绑定到方法:

<asp:textbox id="TextBox1" runat="server"></asp:textbox>

<asp:CustomValidator id="CustomValidator1" runat="server"

  OnServerValidate="TextValidate"

  ControlToValidate="TextBox1"

  ErrorMessage="Text must be 8 or more characters.">

</asp:CustomValidator>

 

4、在 ASP.NET 网页代码中添加测试代码,以检查有效性。

 

二、在客户端创建自定义验证逻辑

1、使用 ECMAScript (JavaScriptJScript) 创建验证函数。

下面的代码示例解释了自定义客户端验证。源自页的摘要将显示由 CustomValidator 控件引用的 TextBox 控件。验证控件调用名为 validateLength 的客户端脚本函数,以确认用户在 TextBox 控件中输入了至少 8 个字符。

<script type="text/javascript">

  function validateLength(oSrc, args){

   args.IsValid = (args.Value.length >= 8);

}

</script>

 

<asp:Textbox id="text1" runat="server" text=""></asp:Textbox>

<asp:CustomValidator id="CustomValidator2" runat="server"

  ControlToValidate = "text1"

  ErrorMessage = "You must enter at least 8 characters!"

  ClientValidationFunction="validateLength" >

</asp:CustomValidator>

 

2、在 ASP.NET 网页代码中添加测试代码,以检查有效性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值