让验证控件进行分组验证

验证控件分组验证

关键字:

Page_ClientValidate,CausesValidation,ValidationGroup

使用描述

  一个新建的页面,可以新建三个数据对象A,B,C;每个数据对象有一些字段;现有2种组合:(1)A+B+C;(2)A;具体用哪种组合由页面的DropDownList控件的选择决定:只新建A时,将B和C所在div隐藏。

现在问题来了:隐藏B和C数据对象,相应的数据验证控件如:RequiredFieldValidator提示不能为空。

解决办法是:将验证控件进行分组。

大概实现过程如下

1,给验证控件添加属性:ValidationGroup=”vgA”(组名随便写)

2,修改保存按钮的属性:CausesValidation=false

3, 给保存按钮添加OnClientClick= ValidateByGruop()

  代码如下:

   function  ValidateByGruop ()

    {

     var retval=false ;

     var val = $('#<%=下拉列表控件ID.ClientID %> option:selected').val();

     if(val == 1)

     {

          //只验证交采必须项

          retval= Page_ClientValidate("mustValidate");

     }

     else  

     {

         //验证所有项

          retval= Page_ClientValidate();

     }

     return retval ;

}

4,如果要使用 ValidationSummary 控件来显示汇总的验证信息,设置其ValidationGroup=”组名”即可

补充说明;

1,Page_ClientValidate方法

Page_ClientValidate(validationGroup)

参数为ValidationGroup属性的值。没有指定参数的情况下表示触发页面所有的Validator控件。

返回值是布尔值(true:验证通过, false:验证失败)。

2,在一个含有RequiredFieldValidator控件的页面上,RequiredFieldValidator控件发送到客户端后生成一些javascript函数,CausesValidation="True"的Button只比CausesValidation="False"的Button多了一些javascript代码

参考博客:http://www.cnblogs.com/kkding/archive/2005/07/11/DataValidator.html

原文地址:https://www.cnblogs.com/webJingGao/p/2068816.html