• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

手动触发asp.net页面验证控件事件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

2 ValidatorValidate(val, validationGroup, event) 
无返回值,无法判断验证是否通过。调用Validator的验证并更新其表示形式以及验证失败时聚焦控件等

   其实在Page_ClientValidate里会调用ValidatorValidate来调用Validator的验证和并根据display属性的值(None, Static, Dynamic)来调整Validator的表示形式。

一, Page_ClientValidate方法

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

<script type="text/javascript">
function preview() {
      // 输入验证
if (!Page_ClientValidate("Detail")) {
return;
}

// 验证成功后的处理
      ......
}
</script>

   如果没有使用ValidationSummary控件,而且不关心验证成功与否的后续处理。那可以使用ValidatorValidate方法

 

***

问题:

一.同时验证全部验证组:

a)客户端解决

1.

val res1=Page_ClientValidate("Detail") ;

val res2=Page_ClientValidate("BBB");

2.

if (!Page_ClientValidate("Detail") || !Page_ClientValidate("BBB")) { 
return; 
}

以上两种写法,只有当Detail验证通过的时候,才会进行验证BBB,没有办法页面上同时进行验证两个及以上.

可以用Page_ClientValidate()来验证多个验证组的.

if (!Page_ClientValidate()) { 
      return; 
}

 

Page_ClientValidate说明:

Page_ClientValidate():验证所有的控件(有设置验证组和没有验证组的都进行验证).

Page_ClientValidate(""):验证没有设置验证组的控件.

Page_ClientValidate("PP"):验证验证组为PP的控件.

 

b)服务器端解决

Page.Validate();//验证所有的控件

if (!Page.IsValid) 

                 return; 
}

 

Page.Validate说明:

Page.Validate():验证所有的控件(有设置验证组和没有验证组的都进行验证).

Page.Validate(""):验证没有设置验证组的控件.

Page.Validate("PP"):验证验证组为PP的控件.

 

 

二.验证自定义的验证组.

(参考 http://blog.163.com/xiao_mege/blog/static/729427532010112845924555/ )

 

添加两个JS function:

function ValidatePage(validationGroups)

{

var list = validationGroups.split('&');

for (var i = 0; i < Page_Validators.length; i++)

    {

             var validator = Page_Validators[i];

if ((validator.validationGroup && ExistsGroup(list, validator.validationGroup))

            || (!validator.validationGroup && ExistsGroup(list, '')))

        {

            ValidatorValidate(validator, validator.validationGroup);

            Page_IsValid = Page_IsValid && validator.isvalid;

        }

else

        {

            validator.isvalid = true;

            ValidatorUpdateDisplay(validator);

        }

    }

//ValidationSummary

for (var i = 0; i < list.length; i++)

    {

        ValidationSummaryOnSubmit(list[i]);

    }

    Page_BlockSubmit = !Page_IsValid;

    return Page_IsValid;

}

function ExistsGroup(list, group)

{

var found = false;

for (i = 0; i < list.length; i++)

    {

if (list[i] == group)

        {

            found = true;

            break;

        }

    }

     return found;

}

 

调用:

<asp:Button ID="ibtnSave" runat="server" OnClientClick="return AAA()" />

function AAA()

{

      if(ValidatePage("&Group1&Group2"))// 验证 没有设置的验证组,Group1,Group2(没有设置验证组的设置为空就可以了)

      {

               return true;

      }

      return false;

}

 

***

 

 

二, ValidatorValidate方法

        参数: var                    要触发的Validator控件对象

validationGroup  ValidationGroup属性的值

event                验证对象ID(用于聚焦。需要focusOnError=“true”的情况下才有用)

例子程序可以参考这里

 

http://www.haogongju.net/art/1311071


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET服务器控件数据绑定总结发布时间:2022-07-10
下一篇:
ASP.NETCORE读取appsettings.json的配置发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap