C# 验证控件的使用RequiredFieldValidator&CompareValidator
使用验证控件可以向服务器提交表单数据时验证表单内容,下面以RequiredFieldValidator和CompareValidator为例说明验证控件的用法
RequiredFieldValidator用来检查必填字段CompareValidator控件可以用来检查数据类型或者比较大小。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ValidationControl.aspx.cs" Inherits="WebApplication1.ValidationControl" %> <!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 runat="server">
<title></title>
<style type ="text/css" >
.red
{
color:Red ;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<fieldset > <legend title ="123">Product Order Form </legend>
<asp:Label ID ="lblProductName" runat ="server" Text =" Product Name:" AssociatedControlID ="txtProductName"></asp:Label>
<br />
<asp:TextBox ID ="txtProductName" runat ="server" ></asp:TextBox>
<asp:RequiredFieldValidator ID ="reqProductName" ControlToValidate="txtProductName" runat ="server" Text ="(Require)" CssClass ="red " SetFocusOnError ="true" ></asp:RequiredFieldValidator> <br /> <asp:Label ID ="lblPrice" runat ="server" Text ="Price:" AssociatedControlID ="txtPrice" ></asp:Label>
<asp:TextBox ID ="txtPrice" runat ="server" ></asp:TextBox>
<asp:RequiredFieldValidator ID ="reqPrice" runat ="server" ControlToValidate="txtPrice" Text ="(Require)" CssClass ="red " SetFocusOnError ="true" ></asp:RequiredFieldValidator>
<asp:CompareValidator ID ="comPrice" runat ="server" ControlToValidate ="txtPrice" Operator ="DataTypeCheck" Text ="Invalid Value" Type ="Currency" CssClass ="red " SetFocusOnError ="true" ></asp:CompareValidator> <br />
<asp:Label ID ="lblQty" runat ="server" Text ="Qty:" AssociatedControlID ="txtQty"></asp:Label>
<asp:TextBox ID ="txtQty" runat ="server" ></asp:TextBox>
<asp:CompareValidator ID ="comQty" runat ="server" ControlToValidate="txtQty" Text ="Invalid Value" CssClass ="red " Display ="Dynamic" Operator ="DataTypeCheck" Type ="Integer" SetFocusOnError ="true" ></asp:CompareValidator>
<br /> <asp:Button ID ="txtSummit" runat ="server" Text ="提交" onclick="txtSummit_Click" />
</fieldset> <asp:Label ID ="lblResult" runat ="server" ></asp:Label>
</div>
</form>
</body>
</html>
public partial class ValidationControl : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } protected void txtSummit_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
lblResult.Text = "Product Name:" + txtProductName.Text + "<br/>" +
"Price:" + txtPrice.Text + "<br/>" +
"Qty:" + txtQty.Text;
}
}
}
例子说明:
1.验证控件ControlToValidate属性用于指定需要验证的控件;
2.验证控件的Text属性用于验证错误时显示错误信息,一般Text属性只是简单的文字,但是Text属性也支持html,比如<img src="error.gif" ali=""/>用一个图片代替简单的文字;
3.如果要验证信息显示红色,或者别的特殊样式,可以使用CssClass指定样式;
4.验证控件的 Display属性,Display属性有Dynamic、Static、None三个值,默认Static,
Display为Static时生成的错误信息如下
<span id="reqPrice" class="red " style="visibility: visible;">(Require)</span>
Display为Dynamic生成的错误信息为
<span id="reqPrice" class="red " style="display: none;">(Require)</span>
两者的区别是visibility: visible虽然隐藏了,但还是占据窗口空间,display: none不占窗口空间,我们应该设置Display为Dynamic这样验证信息后面的控件就不会被推倒右边
None 生成的标签如下,错误信息为空,所以不能用来显示错误提示
<span id="reqPrice" class="red " style="display: none;"></span>
5.验证控件默认在客户端和服务器端都进行验证,一些低端的浏览器不支持JavaScript,所以在服务器端进行验证能保证数据的有效性。可以使用EnableClientScript ="false"禁用客户端验证。
6.在带有验证控件的页面提交数据时需要检查 Page.IsValid属性,因为假如客户端验证不生效,服务器端虽然会进行验证,但是并不会阻止数据提交,只是简单的显示错误信息,如
protected void txtSummit_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
lblResult.Text = "Product Name:" + txtProductName.Text + "<br/>" +
"Price:" + txtPrice.Text + "<br/>" +
"Qty:" + txtQty.Text;
}
}
7.使用SetFocusOnError ="true"来让控件验证不通过时获取焦点,如果有几个验证控件同时设置,第一个控件或者焦点,因为同一个时间只能有一个控件获得焦点。
8.可以使用Page.Validators访问所有的验证控件,或者设置特殊样式。
Page_PreRender事件发生在所有控件事件之后,Page_load事件发生在所有控件事件之前
protected void Page_PreRender(object sender, EventArgs e)
{
foreach (BaseValidator c in Page.Validators)
{
if (c.IsValid)
c.BackColor = System.Drawing.Color.Yellow;
else
c.BackColor = System.Drawing.Color.White;
}
}
C# 验证控件的使用RequiredFieldValidator&CompareValidator的更多相关文章
- ASP.NET验证控件
在此过程中房间的收费制度时,.为了验证文本框是否为空.用户存在.合法等等.我们都要单独写代码.学习了ASP.NET的验证控件,省了非常多事. ASP.NET能够轻松实现对用户输入的验证. 让我们好好回 ...
- ASP.Net 验证控件 RequiredFieldValidator
使用 ASP.NET 验证控件可在网页上检查用户输入.有用于各种不同类型验证的控件,例如范围检查或模式匹配验证控件.每个验证控件都引用网页上其他位置的输入控件(服务器控件).当处理用户输入时(例如,当 ...
- RequiredFieldValidator控件--必填验证控件
RequiredFieldValidator控件: ·RequiredFieldValidator控件也被称之为必填验证控件,顾名思义,也就是与RequiredFieldValidator控件关联的控 ...
- webForm中的验证控件
1.非空验证控件:RequireFieldValidator :2.数据比较验证:CompareValidator :3.数据范围验证:RangeValidator :4.正则表达式验证:Regul ...
- asp.net中验证控件的使用方法
用于检查是否有输入值 :RequiredFieldValidator(必须字段验证) 按设定比较两个输入 :CompareValidator(比较验证) 输入是否在指定范围 :RangeValidat ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- ASP.NET数据验证控件的常用的属性
一.非空验证 RequiredFieldValidator ControlToValidate 所验证的控件ID Text 出错时的提示的文本 ErrorMessage 提交给Validati ...
- 016. asp.net的验证控件
RequiredFileldValidator: 检查某个字段是否输入; 空值检查 主要属性: ControlToValidate:要验证的控件 ErrorMessage:错误提示信息 Compare ...
- ASP.NET验证控件二
RequiredFieldValidator 验证控件 页面布局: <div> <h1>RequiredFieldValidator 验证控件</h1> 用户名 ...
随机推荐
- javascript中var、let、const的区别
这几天修改别人的js,发现声明变量有的用var,有的用let,那它们有什么区别呢? javascript中声明变量的方式有:var.let.const 1.var (1)作用域: 整个函数范围内,或者 ...
- PowerDNS + PowerDNS-Admin
一.基础配置 1.1 环境说明 Centos 7.5.1804 PDNS MariaDB 1.2 关闭防火墙和 selinux setenforce sed -i 's/SELINUX=enforci ...
- [转帖]SSD和内存数据库技术
SSD和内存数据库技术 自己的理解还是不是很对 SSD 提升的是 随机读 并没有对顺序写有多大的提升, 因为数据库采用的是redo的模式. 理论上写入 时是顺序写 所以 写并发的提升不会很大 但是会很 ...
- Vue 动态路由的实现以及 Springsecurity 按钮级别的权限控制
思路: 动态路由实现:在导航守卫中判断用户是否有用户信息,通过调用接口,拿到后台根据用户角色生成的菜单树,格式化菜单树结构信息并递归生成层级路由表并使用Vuex保存,通过 router.addRout ...
- Django框架之第六篇(模型层)--单表查询和必知必会13条、单表查询之双下划线、Django ORM常用字段和参数、关系字段
单表查询 补充一个知识点:在models.py建表是 create_time = models.DateField() 关键字参数: 1.auto_now:每次操作数据,都会自动刷新当前操作的时间 2 ...
- golang函数式编程
- mysql 查询导出 excel 中文乱码 解决 --default-character-set=gbk
mysql --default-character-set=gbk -uroot -p -D open_fusion -e " select * from table1 " ...
- 转!!通俗理解数字加密,数字签名,数字证书和https
原博文地址:https://www.jianshu.com/p/4932cb1499bf 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应. ...
- 2019 朗玛信息java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.朗玛信息等公司offer,岗位是Java后端开发,最终选择去了朗玛信息. 面试了很多家公司,感觉大部分公司考察的点 ...
- 2019 央视网java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.央视网等公司offer,岗位是Java后端开发,最终选择去了央视网. 面试了很多家公司,感觉大部分公司考察的点都差 ...