NET开发-WebForm必填验证对TextBox控件的非空验证及属性的使用

1.概述

在ASP.NET Web应用程序中,对于网页上的验证,一般情况下都是在客户端使用JavaScript代码进行验证,但是对于初学者而言或基于微软的.NET开发者而言,对JavaScript代码并不熟悉,此时微软就为我们提供了一套ASP.NET验证控件。

这一套ASP.NET验证控件可以满足所有的标准数据验证,并且ASP.NET验证控件是双重验证的:客户端验证(JavaScript实现)和服务器端验证(C#代码实现),这样就不怕客户端脚本代码攻击了,保证了验证数据的准确性。

2.解决兼容性

注意:对于ASP.NET 4.5之前的版本,是可以直接使用ASP.NET验证控件的,但是对于ASP.NET 4.5及以后的版本,则可能会出现如下图的错误信息:

这是因为从ASP.NET 4.5版本开始,ASP.NET验证控件的客户端验证使用了UnobtrusiveValidationMode 模式(jQuery工具)来验证。

要解决此问题有多种办法,这里介绍两种简单的方法:

1) 在Visual Studio 2019中将ASP.NET目标框架修改为ASP.NET 4.0。

2) ASP.NET 4.5的情况下,在Page_Load()方法中编写如下代码:

protected void Page_Load(object sender, EventArgs e){UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;}3) ASP.NET 4.5的情况下,或在Web.Config中的<configuration>节点下添加如下代码:

<appSettings><add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/></appSettings>这三种办法都可以轻松的让你使用ASP.NET 验证控件。

3.验证控件的使用

ASP.NET WebForm中的所有验证控件都是存放在工具箱的“验证”类别中的。如下图所示:

在上图中,可以看到WebForm中总共有6个验证控件。

4.RequiredFieldValidator控件

在ASP.NET WebForm中,RequiredFieldValidator控件是非空(或必填)验证控件,用于验证文本框值的必须性。

4.1. ControlToValidate属性

在RequiredFieldValidator控件中,使用ControlToValidate属性来与TextBox控件的ID值绑定。这样可以对TextBox文本框实现非空验证。需要执行一下“提交”按钮才可实施验证。

Html代码如下:

使用ControlToValidate建立绑定关系之后,该必填验证控件就会验证TextBox控件的必填性。

运行一下结果,如下图所示:

在上图中单击一下“提交”按钮,效果如下图所示:

在上图中出现的“RequiredFieldValidator”是验证未通过时出现的提示信息。是ErrorMessage属性指定的值。

4.2. ErrorMessage属性

RequiredFieldValidator中的ErrorMessage属性用于在验证没有通过时出现的验证错误信息。

对于RequiredFieldValidator验证控件,默认的错误信息是:“RequiredFieldValidator”。现在修改一下:

<html><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>RequiredFieldValidator验证控件</title></head><body><form id="form1" runat="server"><div><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" runat="server"ErrorMessage="用户名必填。"></asp:RequiredFieldValidator><asp:Button ID="Button1" runat="server" Text="提交" /></div></form></body></html>在上面的Html代码中,将ErrorMessage属性的值修改为“用户名必填。”。运行一下结果,如下图所示:

当文本框的值为空时,单击“提交”按钮,则会出现错误信息,如果输入内容,则错误信息会消失,验证通过。如下图所示:

当验证通过之后,就会向服务器提交数据,并执行“提交”按钮的事件代码。

4.3. Display属性

在上图我们发现,文本框和按钮之间有一些空白,这个空白区域就是验证控件所占的位置。使用Display属性可以设置验证控件的显示行为,默认值为Static,静态的,验证提示信息占有一定的固定位置。

Display属性的值如下说明:

1) Static:默认值,静态的,会为验证信息占一定的位置空间。

2) None:验证信息不显示。

3) Dynamic:动态的分配验证信息所占空间,当没有错误信息显示时,不占用空间,显示时才占用空间。

4.4. EnableClientScript属性

EnableClientScript属性用于设置验证控件是否启用客户端验证:

EnableClientScript=”true”启用客户端验证,默认值。

EnableClientScript=”false”禁用客户端验证。

如果禁用了客户端验证,则在C#代码中需要使用如下代码来判断是否通过验证:

if (this.Page.IsValid)//验证通过{Response.Write("你好");}4.5. Text属性

Text属性用来获取或设置验证失败时验证控件中显示的文本。

ErrorMessage属性用来获取或设置验证失败时 System.Web.UI.WebControls.ValidationSummary 控件中显示的错误消息的文本。

如果页面上没有ValidationSummary控件,则ErrorMessage和Text属性的作用一样。

posted @ 2021-01-11 08:36  SunKeep  阅读(1362)  评论(0编辑  收藏  举报