Asp.net 验证控件使用技巧——让按钮能验证多个分组

本文介绍了一种在ASP.NET中使Button控件能够触发多个验证分组的方法。通过自定义JavaScript函数,实现了同时对多个ValidationGroup进行验证的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Asp.net验证控件具有ValidationGroup属性,对验证控件进行分组验证。Button也具有ValidationGroup属性,表明其要触发哪个分组的验证控件,问题是此属性只能设置一个分组,如果要触发多个分组的验证控件,该如何作呢?其实我们可以通过自己写JS脚本来包装验证控件的方法,从而实现解发多个分组的功能。

客户端JS代码
<script type="text/javascript">
    //让Button能验证多个分组
    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;
    }

    //指定的分组是否在要验证的分组列表中
    //true表示在其中,false表示不在其中
    function ExistsGroup(list, group) {
        var found = false;

        for (i = 0; i < list.length; i++) {
            if (list[i] == group) {
                found = true;
                break;
            }
        }

        return found;
    }

</script>

 

在Button的OnClientClick事件中调用ValidatePage函数
<asp:Button runat="server" ID="btnTest" Text="Test" OnClientClick="return ValidatePage('vgJieCi&vgPC');" OnClick="btnTest_Click" />
 
 
 
 
 
这样,我们就能让Button解发多个分组的验证了。

转载于:https://www.cnblogs.com/yyniuznyin/archive/2010/04/22/1718181.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值