首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.8  控制并验证用户输入格式的MaskedEdit控件

在ASP.NET AJAX Control Toolkit中,MaskedEdit控件是功能非常强大的一个控件,它能够控制用户输入的字符和内容格式。如果用户输入字符或内容的格式不满足事先的设置,则控件将不会接收用户的输入。如果MaskedEdit控件设置了格式,那么它将为用户显示设置的格式,如图2.12所示。图2.12中的格式为“XXXX-XX-XX”。因此,用户只能按照该格式进行输入。

图2.12  MaskedEdit控件控制用户输入的格式

在ASP.NET AJAX Control Toolkit中,MaskedEdit控件和MaskedEditValidator控件往往一起使用。MaskedEdit控件控制用户输入的字符和内容格式,MaskedEditValidator控件验证用户输入的内容是否满足指定的内容和格式。其中,声明MaskedEdit扩展器控件的语法类似如下:

<ajaxToolkit:MaskedEditExtender

    TargetControlID="TextBox控件"

    Mask="能够接收的字符集合,如9,999,999.99"

    MessageValidatorTip="true"

    OnFocusCssClass="样式"

    OnInvalidCssClass="用户输入内容不合法时的样式"

    MaskType="屏蔽的类型"

    InputDirection="文字的方向"

    AcceptNegative="接收负号(-)的方式"

    DisplayMoney="显示货币符合的方式"

    ErrorTooltipEnabled="True"/>

另外,MaskedEdit控件包含多个常用属性,如TargetControlID、MaskType、Filtered、AcceptNegative、UserDateFormat、UserTimeFormat等。具体说明如表2.8所示。

表2.8  MaskedEdit控件的常用属性及其说明

   

   

TargetControlID

使用该控件的ASP.NET服务器端控件的ID

MaskType

屏蔽的类型

Mask

指定接收的字符和格式

AcceptAMPM

是否接受“AM/PM”字符串。默认值为false

AcceptNegative

是否接受负号(-)。其值可以是NoneLeftRight

AutoComplete

是否使用自动完成功能

AutoCompleteValue

自动完成时使用的值

ClearTextOnInvalid

当内容不合法时,是否自动清空文本

ClipboardEnabled

是否允许粘贴或拷贝

ErrorTooltipEnabled

是否使用错误提示功能

续表 

   

   

Century

默认的世纪

ClearMaskOnLostFocus

TextBox控件失去焦点时,是否清空屏蔽字符

ClipboardText

剪切板的文本

DisplayMoney

货币符号显示方式

Filtered

合法字符集合

InputDirection

输入文本的方向

MessageValidatorTip

当用户输入内容时,显示的提示文本

PromptChararacter

提示字符集合

CultureName

文化名称

ErrorTooltipCssClass

错误提示文本的样式

OnFocusCssClass

当焦点落在TextBox控件上时,TextBox控件的样式

OnInvalidCssClass

当内容不合法时,TextBox控件的样式

OnFocusCssNegative

当焦点落在TextBox控件且内容为负值时,TextBox控件的样式

OnBlurCssNegative

TextBox控件失去焦点且内容为负值时,TextBox控件的样式

UserDateFormat

日期格式

UserTimeFormat

时间格式

CultureDateFormat

本地化日期格式

CultureAMPMPlaceholder

与当前页的文化相关

CultureCurrencySymbolPlaceholder

与当前页的文化相关

CultureDatePlaceholder

与当前页的文化相关

CultureDecimalPlaceholder

与当前页的文化相关

CultureThousandsPlaceholder

与当前页的文化相关

CultureTimePlaceholder

与当前页的文化相关

MaskType属性指定屏蔽的类型,即验证的类型。它的值可以是以下5个值:

—  None,未指定验证类型。

—  Number,数字验证类型。

—  Date,日期验证类型。

—  Time,时间验证类型。

—  DateTime,日期和时间验证类型。

Mask属性指定接收的字符和格式,它的值是一个字符串,如表示日期的“9999-99-99”(年份为4位的数字,月份和日期都为2位的数字,分隔符号为“-”)、表示时间的“99:99:99”等。在Mask属性中,它可以使用通配符表示一类字符,具体说明如表2.9所示。

表2.9  Mask中的通配符及其说明

  

   

9

表示数字(0~9

L

表示一个字母,可以大写或小写

$

表示一个字母或空格

续表 

  

   

C

表示一个自定义字符

A

表示一个字母或一个自定义字符

N

表示一个数字或一个自定义字符

?

表示任意一个字符

在Mask属性中,除了使用通配符之外,还可以使用分隔符,具体说明如表2.10所示。

表2.10  Mask中的分隔符及其说明

  

   

/

日期分隔符

:

时间分隔符

.

小数点

,

千位分隔符

\

转义字符

{

重复值的开始部分

}

重复值的结束部分

使用表2.9中的通配符和表2.10中的分隔符可以组成多种多样的格式字符串,常用的实例如下:

—“99:99:99”,表示时间字符串。

—“9999-99-99”,表示日期字符串。

—“999999”,表示由6个数字组成的字符串。

—“9\/9”,表示由2个数字组成的中间被字符“/”分隔的字符串。

DisplayMoney属性能够指定显示货币符号(如¥、$等)的方式,具体描述如下:

—  None,不显示货币符号。

—  Left,在最左边显示货币符号。

—  Right,在最右边显示货币符号。

AcceptNegative属性指定能否接受负号(-),具体描述如下:

—  None,不显示负号。

—  Left,在最左边显示负号。

—  Right,在最右边显示负号。

InputDirection属性指定文本的方向,它的值可以为LeftToRight(表示从左到右)和RightToLeft(表示从右到左)。在下述实例代码中,MaskedEditExtender控件指定验证类型为日期类型(由MaskType属性指定),格式字符串为“9999-99-99”。因此,用户只能输入日期格式的数据。

<ajaxToolkit:MaskedEditExtender ID="meeInput" runat="server"

    Mask="9999-99-99" MaskType="Date" TargetControlID="tbInput">

    </ajaxToolkit:MaskedEditExtender>

在ASP.NET AJAX Control Toolkit中,MaskedEditValidator控件也是一个功能非常强大的控件,它能够验证用户输入的内容是否满足事先指定的格式。声明MaskedEditValidator控件的语法类似如下:

<ajaxToolkit:MaskedEditValidator

    ControlExtender="MaskedEditExtender控件"

    ControlToValidate="被验证的TextBox控件"

    IsValidEmpty="False"

    MaximumValue="最大值"

    EmptyValueMessage="空值时的提示消息"

    InvalidValueMessage="不合法时的提示消息"

    MaximumValueMessage="超过最大值的提示消息"

    MinimumValueMessage="超过最小值的提示消息"

    MinimumValue="最小值"

    EmptyValueBlurredText="*"

    InvalidValueBlurredMessage="*"

    MaximumValueBlurredMessage="*"

    MinimumValueBlurredText="*"

    Display="Dynamic"

    TooltipMessage="提示消息"/>

另外,MaskedEditValidator控件包含多个常用属性,如ControlToValidate、InitialValue、ControlExtender、IsValidEmpty、MaximumValue、MinimumValue等。具体说明如表2.11所示。

表2.11  MaskedEditValidator控件的常用属性及其说明

   

   

ControlToValidate

被验证控件的ID属性的值

ControlExtender

与其相对应的MaskedEditExtender控件指定的TextBox控件的ID属性的值

AcceptAMPM

是否接受“AM/PM”字符串。默认值为false

InitialValue

与其相对应的TextBox控件的初始值

IsValidEmpty

与其相对应的TextBox控件的值为空是否合法

MaximumValue

最大值

MinimumValue

最小值

ValidationExpression

验证内容的正则表达式

ClientValidationFunction

客户端验证函数的名称

TooltipMessage

TextBox控件具有焦点时显示的消息

EmptyValueMessage

TextBox控件具有焦点,该控件的内容为空时显示的消息

EmptyValueBlurredText

TextBox控件不具有焦点,该控件的内容为空时显示的消息

InvalidValueMessage

TextBox控件具有焦点,验证不合法时显示的消息

InvalidValueBlurredMessage

TextBox控件不具有焦点,验证不合法时显示的消息

MaximumValueMessage

TextBox控件具有焦点,控件的内容超过最大值时显示的消息

MaximumValueBlurredMessage

TextBox控件不具有焦点,控件的内容超过最大值时显示的消息

MinimumValueMessage

TextBox控件具有焦点,控件的内容超过最小值时显示的消息

MinimumValueBlurredText

TextBox控件不具有焦点,控件的内容超过最小值时显示的消息

在下述代码实例中,MaskedEdit.aspx页面为TextBox控件(ID属性的值为tbInput)演示了控制并验证用户输入格式的功能。MaskedEditExtender和MaskedEditValidator控件的ID属性的值分别为meeInput和mevInput。meeInput控件指定用户只能输入“9999-99-99”格式的日期,mevInput控件将验证用户输入的格式是否正确,如果不正确,则显示提示消息。

<!-- AjaxTextInput/MaskedEdit.aspx页面 -->

<%@ Page Language="C#" StylesheetTheme="ASPNETAjaxWeb"%>

<head runat="server"><title>控制用户输入格式并验证</title></head>

<asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager><br />

<asp:TextBox ID="tbInput" runat="server" SkinID="tbSkin"

    Width="300px"></asp:TextBox>

<ajaxToolkit:MaskedEditExtender ID="meeInput" runat="server"

    Mask="9999-99-99" MaskType="Date" TargetControlID="tbInput">

    </ajaxToolkit:MaskedEditExtender>

<ajaxToolkit:MaskedEditValidator ID="mevInput" runat="server"

    ControlToValidate="tbInput" ControlExtender="meeInput"

    IsValidEmpty="false" EmptyValueMessage="日期不能为空"

    InvalidValueMessage="日期的格式不正确"

    TooltipMessage="请输入日期,格式为:yyyy-MM-dd"

    Display="Dynamic"></ajaxToolkit:MaskedEditValidator>

上述代码实例的执行结果如图2.13所示。

图2.13  演示控制并验证用户输入格式的功能

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论