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

2.3  多样式验证的ValidatorCallout控件

ASP.NET中的验证控件能够在网页或对话框上显示验证结果。虽然ASP.NET验证能够达到预期的效果,但是验证结果不一定能够非常醒目或更加友好地提供给用户。ASP.NET AJAX Control Toolkit中的ValidatorCallout控件能够实现以非常醒目或更加友好的方式把验证信息显示给用户的功能,效果如图2.4所示。

图2.4  多样式验证效果图

声明ValidatorCallout扩展器控件的语法类似如下:

<ajaxToolkit:ValidatorCalloutExtender

    runat="Server"

    ID="vceValidator"

    TargetControlID="验证控件的ID属性的值"

    Width="350px"

    HighlightCssClass="样式"

    WarningIconImageUrl="警告按钮图像的地址"

    CloseImageUrl="关闭按钮图像的地址" />

另外,ValidatorCallout控件包含多个常用的属性,如TargetControlID、Width、Animations、CloseImageUrl、WarningIconImageUrl等。具体说明如表2.3所示。

表2.3  ValidatorCallout控件的常用属性及其说明

   

   

TargetControlID

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

Width

宽度

CloseImageUrl

指定Close图像

WarningIconImageUrl

指定警告图像

HighlightCssClass

指定验证结果的样式

Animations

显示或隐藏验证结果的动画

OnShow

显示验证结果时的动画

OnHide

隐藏验证结果时的动画

Width属性指定控件的宽度;CloseImageUrl和WarningIconImageUrl属性分别指定显示验证结果面板中的关闭按钮图像和警告按钮图像;Animations属性指定显示或隐藏验证结果的动画。

注意:ValidatorCallout控件只能应用于验证控件,不能应用于TextBox控件。

在下述代码实例中,Validator.aspx页面演示了为TextBox控件(ID属性的值为tbInput)添加多样式验证的功能。Validator.aspx页面声明了2个RequiredFieldValidator控件和1个RegularExpressionValidator控件,ID属性的值分别为rfInputBlank、rfInputValue和revInput。

其中,rfInputBlank控件验证tbInput控件的内容不能为空;rfInputValue控件验证tbInput控件的内容不能为wmeInput控件(TextBoxWatermarkExtender类型的控件)的水印值“请输入名称”;revInput控件验证tbInput控件内容的最大长度为50,其正则表达式为“.{1,50}”。

注意:Validator.aspx页面声明了3个ValidatorCalloutExtender控件,ID属性的值分别为vceInputBlank、vceInputValue和vceInputRegex。它们分别以多样式形式显示rfInputBlank、rfInputValue和revInput控件的验证结果。

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

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

<head runat="server"><title>多样式验证</title></head>

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

<br />请在下面输入框中输入名称:<br />

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

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

<asp:RequiredFieldValidator ID="rfInputBlank" runat="server"

    ControlToValidate="tbInput" Display="none"

    ErrorMessage="名称不能为空!"></asp:RequiredFieldValidator>

<asp:RequiredFieldValidator ID="rfInputValue" runat="server"

    ControlToValidate="tbInput" Display="none" InitialValue="请输入名称"

    ErrorMessage="名称不能为空!"></asp:RequiredFieldValidator>

<asp:RegularExpressionValidator ID="revInput" runat="server"

    ControlToValidate="tbInput" Display="none"

    ErrorMessage="名称的长度最大为50,请重新输入。"

    ValidationExpression=".{1,50}"></asp:RegularExpressionValidator>

<ajaxToolkit:TextBoxWatermarkExtender ID="wmeInput" runat="server"

    TargetControlID="tbInput" WatermarkText="请输入名称"

    WatermarkCssClass="Watermark">

    </ajaxToolkit:TextBoxWatermarkExtender>

<ajaxToolkit:ValidatorCalloutExtender ID="vceInputBlank" runat="server"

    TargetControlID="rfInputBlank" HighlightCssClass="Validator">

    </ajaxToolkit:ValidatorCalloutExtender>

<ajaxToolkit:ValidatorCalloutExtender ID="vceInputValue" runat="server"

    TargetControlID="rfInputValue" HighlightCssClass="Validator">

    </ajaxToolkit:ValidatorCalloutExtender>

<ajaxToolkit:ValidatorCalloutExtender ID="vceInputRegex" runat="server"

    TargetControlID="revInput" HighlightCssClass="Validator">

    </ajaxToolkit:ValidatorCalloutExtender>

<asp:Button ID="btnSure" runat="server" Text="提交" />

上述代码实例执行之后,单击【提交】按钮,如图2.5所示。此时,用户未输入任何内容。

图2.5  演示多样式验证的功能

查看所有评论(0)条】

最近评论



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