Hive 多验证自输入控件(最终版)






3.26/5 (17投票s)
2004年7月3日
7分钟阅读

82521

3090
将文本框、多重验证和响应标签组合在一个控件中。允许文本框进行自检和自错误响应消息。此控件具有特殊字符集属性,可防止 SQL 注入攻击和客户端脚本攻击。
引言
本文演示了一个将文本框、多重验证和响应标签组合在一个控件中的控件。允许文本框进行自检和自错误响应消息。此控件具有特殊字符集属性,可防止 SQL 注入攻击和客户端脚本攻击。您还可以使用 `chars` 属性为您的控件指定自定义字符集。此控件还包括多种验证类型可供选择:`NONE`、`USERDEFINED`、`EMAIL`、`URL`、`ZIPCODE`、`PHONE`、`INTERNATIONALPHONE`、`DATE`、`ADVANCEDDATE`、`UKDATE`、`IPADDRESS`、`UKPOSTALCODE`、`SSN`、`CREDITCARD`、`PASSWORD`、`PERCENTAGE` 和 `GUID`。此控件还可以运行用户定义的验证类型。此控件还内置了范围验证、不良词语过滤、必填验证器和比较验证器。
语言
VB.NET 和 ASP.NET(献给所有 C# 程序员,你们赚得比 VB.NET 程序员多得多!!! :P~)
版本
1.0 - 最终版。
如何使用
将代码编译成 .NET DLL 程序集,并放入您的网站主目录(bin)文件夹。然后将以下代码添加到您的 ASP.NET 网页中
<%@ Register TagPrefix="Hive" NameSpace="Hive.Controls" Assembly="Hive"%>
然后在您的表单中添加 `textbox` 控件
<Hive:textbox id="textbox1" runat="server" req="True"/>
类 | |
类名 | 描述 |
`Hive.Controls` - 命名空间 描述 - 复杂的自定义 `textbox` 用户控件。 | |
HiveException |
用于处理所有可能发生的 Hive 异常。Inherits ApplicationException |
文本框 |
Hive 多重验证自检文本框控件。Inherits System.Web.UI.UserControl
Implements IValidator |
属性 | ||
属性名称 | 类型 | 描述 |
控件验证属性 | ||
IsValid |
布尔值 |
检查此控件是否有效并将其返回到页面验证中。 |
ErrorMessage |
字符串 |
验证器验证的错误消息。 |
类型 |
ValidationMode |
用于设置要执行的验证类型。(枚举:`ValidationMode`)验证类型 - `NONE` | `USERDEFINED` | `EMAIL` | `URL` | `ZIPCODE` | `PHONE` | `INTERNATIONALPHONE` | `DATE` | `ADVANCEDDATE` | `UKDATE` | `IPADDRESS` | `UKPOSTALCODE` | `SSN` | `CREDITCARD` | `PASSWORD` | `PERCENTAGE` | `GUID` |
Compare |
CompareMode |
用于设置文本框的比较模式类型。 |
RangeType |
RangeMode |
用于设置 `MinimumValue` 和 `MaximumValue` 属性的范围类型。 |
MinimumValue |
字符串 |
用于设置范围验证的起始参数。 |
MaximumValue |
字符串 |
用于设置范围验证的结束参数。 |
CustomCharsError |
字符串 |
用于设置自定义 `CharsetMode` 正则表达式错误消息。 |
CustomChars |
字符串 |
用于设置自定义 `CharsetMode` 正则表达式。 |
CustomRegExp |
字符串 |
用于为用户定义的 `ValidationMode` 设置自定义正则表达式。 |
CustomError |
字符串 |
用于为用户定义的 `ValidationMode` 设置自定义错误消息。 |
CreditCardType |
字符串 |
一个信用卡类型 ReadOnly 属性,属于 `CardType` 枚举。 |
BadWords |
布尔值 |
用于测试文本框文本中是否有不良词语并返回错误。 |
Chars |
CharsetMode |
用于设置文本框允许的字符类型。(枚举:`CharsetMode`)字符类型 - `NONE` | `USERDEFINED` | `ALL` | `NONHTML` | `NOQUOTES` | `NODOUBLEQUOTES` | `ALPHA` | `ALPHANUMERIC` | `NUMERIC` |
Req |
布尔值 |
检查文本框是否为必填字段。 |
最大值 |
整数 |
用于设置文本框的最大字符长度。 |
最小值 |
整数 |
用于设置文本框的最小字符长度。 |
扩展文本框控件属性 | ||
onSelect |
字符串 |
用于设置文本框的 `onSelect` 属性。 |
onMouseUp |
字符串 |
用于设置文本框的 `onMouseUp` 属性。 |
onMouseOver |
字符串 |
用于设置文本框的 `onMouseOver` 属性。 |
onMouseOut |
字符串 |
用于设置文本框的 `onMouseOut` 属性。 |
onMouseMove |
字符串 |
用于设置文本框的 `onMouseMove` 属性。 |
onMouseDown |
字符串 |
用于设置文本框的 `onMouseDown` 属性。 |
onKeyUp |
字符串 |
用于设置文本框的 `onKeyUp` 属性。 |
onKeyPress |
字符串 |
用于设置文本框的 `onKeyPress` 属性。 |
onKeyDown |
字符串 |
用于设置文本框的 `onKeyDown` 属性。 |
onFocus |
字符串 |
用于设置文本框的 `onFocus` 属性。 |
onDblClick |
字符串 |
用于设置文本框的 `onDblClick` 属性。 |
onClick |
字符串 |
用于设置文本框的 `onClick` 属性。 |
onChange |
字符串 |
用于设置文本框的 `onChange` 属性。 |
onBlur |
字符串 |
用于设置文本框的 `onBlur` 属性。 |
控件样式属性 | ||
Style1 |
字符串 |
用于设置文本框的 CSS 样式。 |
Style2 |
字符串 |
用于设置错误标签的 CSS 样式。 |
Style3 |
字符串 |
用于设置显示标签的 CSS 样式。 |
Style4 |
字符串 |
用于设置必填符号星号的 CSS 样式。 |
表格 |
布尔值 |
用于在文本框和标签周围创建表格的布尔属性。 |
ReqSymbol |
布尔值 |
在文本框末尾添加星号。 |
Label |
字符串 |
用于设置文本框控件的标签消息。 |
控件标准属性 | ||
宽度 |
整数 |
用于设置文本框的宽度。 |
高度 |
整数 |
用于设置文本框的高度。 |
ID |
字符串 |
用于设置文本框的 ID。 |
ID2 |
字符串 |
用于设置比较文本框的 ID。 |
ReadOnly |
布尔值 |
用于设置文本框的 ReadOnly 属性。 |
文本 |
字符串 |
用于设置文本框控件的文本值。 |
值 |
字符串 |
文本框控件的值。 |
TextMode |
TextBoxMode |
用于设置文本框的文本模式。(枚举:`TextBoxMode`)模式类型 - `SINGLELINE` | `MULTILINE` | `PASSWORD`。 |
ProperName |
字符串 |
用于为文本框控件设置一个正确的名称。 |
ProperName2 |
字符串 |
用于设置比较控件的正确名称。 |
枚举 | ||
枚举常量 | 描述 | |
`CharsetMode` - 枚举 描述 - 允许的不同字符集类型的枚举。 | ||
无 |
不允许使用任何字符。 | |
USERDEFINED |
允许开发人员指定要使用的字符。 | |
ALL |
允许使用所有字符。 | |
NONHTML |
允许使用所有非 HTML 字符。 | |
NOQUOTES |
允许使用除引号外的所有字符。 | |
NODOUBLEQUOTES |
允许使用除双引号外的所有字符。 | |
ALPHA |
只允许使用所有字母字符。 | |
ALPHANUMERIC |
只允许使用所有字母数字字符。 | |
NUMERIC |
只允许使用所有数字字符。 | |
`ValidationMode` - 枚举 描述 - 不同验证类型的枚举。 | ||
无 |
不允许任何验证类型。 | |
USERDEFINED |
允许开发人员指定自己的验证正则表达式类型。 | |
EMAIL |
允许电子邮件验证类型。 | |
URL |
允许 URL 验证类型。 | |
ZIPCODE |
允许邮政编码验证类型。 | |
PHONE |
允许电话号码验证类型。 | |
INTERNATIONALPHONE |
允许国际电话号码验证类型。 | |
DATE |
允许日期验证类型。 | |
ADVANCEDDATE |
允许高级日期验证类型。 | |
UKDATE |
允许英国日期验证类型。 | |
IPADDRESS |
允许 IP 地址验证类型。 | |
UKPOSTALCODE |
允许英国邮政编码验证类型。 | |
社会保险号 |
允许社会安全号码验证类型。 | |
CREDITCARD |
允许信用卡验证类型。 | |
密码 |
允许密码验证类型。 | |
PERCENTAGE |
允许百分比验证类型。 | |
GUID |
允许 GUID 验证类型。 | |
`CompareMode` - 枚举 描述 - 不同比较模式类型的枚举。 | ||
无 |
不使用比较模式。 | |
EQUAL |
比较模式设置为相等。 | |
CASEEQUAL |
比较模式设置为区分大小写相等。 | |
NOTEQUAL |
比较模式设置为不相等。 | |
`CardType` - 枚举 描述 - 不同信用卡类型的枚举。 | ||
无 |
未指定信用卡类型。 | |
MASTERCARD |
万事达卡类型。 | |
VISA |
维萨卡类型。 | |
AMEX |
美国运通卡类型。 | |
DISCOVER |
发现卡类型。 | |
DINERSCLUB |
大来卡类型。 | |
ENROUTE |
EnRoute 卡类型。 | |
JCB |
JCB 卡类型。 | |
`RangeMode` - 枚举 描述 - 用于将范围属性设置为该类型的枚举。 | ||
无 |
将范围模式设置为无。 | |
CURRENCY |
将范围模式类型设置为货币。 | |
DATE |
将范围模式类型设置为 Date 。 | |
DOUBLE |
将范围模式类型设置为 Double 。 | |
INTEGER |
将范围模式类型设置为 Integer 。 | |
STRING (字符串) |
将范围模式类型设置为 String 。 |
结论
好了,我的 Hive 文本框控件终于完成了。感觉好像要花上一辈子的时间才能完成,至少是文档部分。
许可证
只要保留标题,即可自由使用和修改。用户还必须向作者的电子邮件地址发送电子邮件,说明他们正在何处使用该代码。如果对该程序集进行了任何修改,用户必须将更改通过电子邮件发送给作者的电子邮件地址。
使用、复制、分发和修改的条款和条件
本代码由版权所有者和贡献者“按原样”提供,不作任何明示或暗示的担保,包括但不限于适销性和特定用途适用性的暗示担保。在任何情况下,版权所有者贡献者均不对任何直接、间接、偶然、特殊、惩戒性或后果性损害(包括但不限于采购替代商品或服务;使用、数据或利润损失;或业务中断)承担责任,无论其成因如何,以及基于任何责任理论,无论是合同、严格责任或侵权(包括疏忽或其他方式),即使已被告知此类损害的可能性。