ASP.NET - 指定验证组

      使用验证组可以将页面上的验证控件归为一组。可以对每个验证组执行验证,该验证与同一页的其他验证组无关。

将要分组的所有控件的 ValidationGroup 属性设置为同一个名称(字符串)即可创建验证组。可以为验证组分配任何名称,但必须对该组的所有成员使用相同的名称。

在回发过程中,只根据当前验证组中的验证控件来设置 Page 类的 IsValid 属性。当前验证组是由导致验证发生的控件确定的。例如,如果单击验证组为 LoginForm 的按钮控件,并且其 ValidationGroup 属性设置为 LoginForm 的所有验证控件都有效,则 IsValid 属性将返回 true。对于其他控件(如 DropDownList 控件),如果控件的 CausesValidation 属性设置为 true(而 AutoPostBack 属性设置为 true),则也可以触发验证。

若要以编程方式进行验证,可以调用 Validate 方法重载,使其采用 validationGroup 参数来强制只为该验证组进行验证。请注意,在调用 Validate 方法时,IsValid 属性反映到目前为止已验证的所有组的有效性。这可能包括作为回发结果验证的组以及以编程方式验证的组。如果任一组中的任何控件无效,则 IsValid 属性返回 false

下面的代码示例演示在 Button 控件回发到服务器时,如何使用 ValidationGroup 属性指定要验证的控件。页面包含三个文本框(用于从用户捕获数据)和三个 RequiredFieldValidator 控件(用于确保用户没有保留文本框为空白)。前两个文本框的 RequiredFieldValidator 控件位于 PersonalInfoGroup 验证组中,而第三个文本框的 RequiredFieldValidator 控件位于 LocationInfoGroup 验证组中。在单击 Button1 时,只验证 PersonalInfoGroup 验证组中的控件。在单击 Button2 时,只验证 LocationInfoGroup 验证组中的控件。

 

<%@ page language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html  >

<head id="head1" runat="server">

  <title>Button.ValidationGroup Example</title>

</head>

<body>

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

 

    <h3>Button.ValidationGroup Example</h3>

 

    <asp:label id="NameLabel"

      text="Enter your name:"

      runat="Server"

      AssociatedControlID="NameTextBox">

    </asp:label>

 

    &nbsp

 

    <asp:textbox id="NameTextBox"

      runat="Server">

    </asp:textbox>

 

    &nbsp

 

    <asp:requiredfieldvalidator id="RequiredFieldValidator1"

      controltovalidate="NameTextBox"

      validationgroup="PersonalInfoGroup"

      errormessage="Enter your name."

      runat="Server">

    </asp:requiredfieldvalidator>

 

    <br /><br />

 

    <asp:label id="AgeLabel"

      text="Enter your age:"

      runat="Server"

      AssociatedControlID="AgeTextBox">

    </asp:label>

 

    &nbsp

 

    <asp:textbox id="AgeTextBox"

      runat="Server">

    </asp:textbox>

 

    &nbsp

 

    <asp:requiredfieldvalidator id="RequiredFieldValidator2"

      controltovalidate="AgeTextBox"

      validationgroup="PersonalInfoGroup"

      errormessage="Enter your age."

      runat="Server">

    </asp:requiredfieldvalidator>

 

    <br /><br />

 

    <!--When Button1 is clicked, only validation

    controls that are a part of PersonalInfoGroup

    are validated.-->

    <asp:button id="Button1"

      text="Validate"

      causesvalidation="true"

      validationgroup="PersonalInfoGroup"

      runat="Server" />

 

    <br /><br />

 

    <asp:label id="CityLabel"

      text="Enter your city of residence:"

      runat="Server"

      AssociatedControlID="CityTextBox">

    </asp:label>

 

    &nbsp

 

    <asp:textbox id="CityTextBox"

      runat="Server">

    </asp:textbox>

 

    &nbsp

 

    <asp:requiredfieldvalidator id="RequiredFieldValidator3"

      controltovalidate="CityTextBox"

      validationgroup="LocationInfoGroup"

      errormessage="Enter a city name."

      runat="Server">

    </asp:requiredfieldvalidator>

 

    <br /><br />

 

    <!--When Button2 is clicked, only validation

    controls that are a part of LocationInfoGroup

    are validated.-->

    <asp:button id="Button2"

      text="Validate"

      causesvalidation="true"

      validationgroup="LocationInfoGroup"

      runat="Server" />

 

  </form>

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值