小宋笔记

程序员的家

导航

ValidationSummary控件

ValidationSummary控件用于在页面中的一处地方显示所有验证错误的列表。这个控件在使用大的表单时特别有用。如果用户在页面底部的表单字段中输入了错误的值,那么这个用户可能永远也看不到错误信息。不过,如果使用ValidationSummary控件,就可以始终在表单的顶端显示错误列表。

你可能已经注意到每个验证控件都有ErrorMessage属性。我们原来不用ErrorMessage属性来表示验证错误信息,而使用Text属性。

ErrorMessage属性和Text属性的不同之处在于,赋值给ErrorMessage属性的信息显示在ValidationSummary控件中,而赋值给Text属性的信息显示在页面主体中。通常,需要保持Text属性的错误信息简短(例如“必填!”)。另一方面,赋值给ErrorMessage属性的信息应能识别有错误的表单字段(例如“名字是必填项!”)。

注解   如果不为Text属性赋值,那么ErrorMessage属性的值就会同时显示在ValidationSummary控件和页面主体中。

代码清单3-18中的页面展示了如何使用ValidationSummary控件以显示错误信息摘要(见图3-14)。

图3-14  显示验证摘要

代码清单3-18  ShowValidationSummary.aspx

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

<!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 id="Head1" runat="server">

    <title>Show ValidationSummary</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <asp:ValidationSummary

        id="ValidationSummary1"

        Runat="server" />

    <asp:Label

        id="lblFirstName"

        Text="First Name:"

        AssociatedControlID="txtFirstName"

        Runat="server" />

    <br />

    <asp:TextBox

        id="txtFirstName"

        Runat="server" />

    <asp:RequiredFieldValidator

        id="reqFirstName"

        Text="(Required)"

        ErrorMessage="First Name is required"

        ControlToValidate="txtFirstName"

        Runat="server" />      

    <br /><br />

    <asp:Label

        id="lblLastName"

        Text="Last Name:"

        AssociatedControlID="txtLastName"

        Runat="server" />

    <br />

    <asp:TextBox

        id="txtLastName"

        Runat="server" />

    <asp:RequiredFieldValidator

        id="reqLastName"

        Text="(Required)"

        ErrorMessage="Last Name is required"

        ControlToValidate="txtLastName"

        Runat="server" />      

    <br /><br />

    <asp:Button

        id="btnSubmit"

        Text="Submit"

        Runat="server" />   

    </div>

    </form>

</body>

</html>

如果不输入名和姓就提交代码清单3-18中的表单,那么错误信息同时显示在页面主体和ValidationSummary控件中。

ValidationSummary控件支持下列属性:

q DisplayMode——用于指定如何格式化错误信息。可能的值有BulletList、List和SingleParagraph。

q HeaderText——用于在验证摘要上方显示标题文本。

q ShowMessageBox——用于显示一个弹出警告对话框。

q ShowSummary——用于隐藏页面中的验证摘要。

如果把ShowMessageBox属性设为True,并把ShowSummary属性设为False,那么验证摘要只显示在弹出的警告对话框中。例如,代码清单3-19中的页面在警告对话框中显示验证摘要(见图3-15)。

代码清单3-19  ShowSummaryPopup.aspx

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

<!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 id="Head1" runat="server">

    <title>Show Summary Popup</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <asp:ValidationSummary

        id="ValidationSummary1"

        ShowMessageBox="true"

        ShowSummary="false"

        Runat="server" />

    <asp:Label

        id="lblFirstName"

        Text="First Name:"

        AssociatedControlID="txtFirstName"

        Runat="server" />

    <br />

    <asp:TextBox

        id="txtFirstName"

        Runat="server" />

    <asp:RequiredFieldValidator

        id="reqFirstName"

        ErrorMessage="First Name is required"

        ControlToValidate="txtFirstName"

        Display="None"

        Runat="server" />      

    <br /><br />

    <asp:Label

        id="lblLastName"

        Text="Last Name:"

        AssociatedControlID="txtLastName"

        Runat="server" />

    <br />

    <asp:TextBox

        id="txtLastName"

        Runat="server" />

    <asp:RequiredFieldValidator

        id="reqLastName"

        ErrorMessage="Last Name is required"

        ControlToValidate="txtLastName"

        Display="None"

        Runat="server" />      

    <br /><br />

    <asp:Button

        id="btnSubmit"

        Text="Submit"

        Runat="server" />   

    </div>

    </form>

</body>

</html>

posted on 2008-07-04 17:38  小 宋  阅读(633)  评论(0编辑  收藏  举报