DEVEXPRESS ASPxGridView 中自定义EDITFORM的单元格验证

在项目开发中,我们经常习惯性的按照CS的习惯去思考BS的功能,比如:在某个页面中有下拉框是相互关联的,在某个下拉框选择后,我们希望看到相关其他控件做相应变化,并根据验证条件做出相应动作,那么在BS结构的WEBFORM中是如何做到的呢?实际上这是一个动态关联及验证问题。方法如下:

一、建好aspx页面,并设置相应属性
二、创建关键字段js动态验证代码
三、分别为相关控件设计数据变化事件

重点:SetIsValid(true):为某控件设置验证成功
SetIsValid(false);为某控件设置验证失败并显示警告图标
ErrorMode=ImageWithToolTip:只显示警告图标,仅在鼠标放上去时才会显示提示文字
ErrorMode=ImageWithText:显示警告图标和文字
SetEnabeld(true):使用某元素有效,注意此命令会导致isValid=true恢复默认值,也就是说在需要设置SetEnabeld(true)时,要考虑此时元素的isValid应该是个什么值,我在项目设计时就遇到了这种情况,前面本来是isValid=false,不知怎么回事,后面就自己变成了isValid=true,调试了半天发现当使用了SetEnabeld(true)时,isValid会自动改为true。所以请大家注意这一点!
如果isValid=true时表示验证成功,不会显示警告图标 ,也就是说,如果想显示警告图标,前提条件是isValid=false,想不显示警告图标,前提条件是isValid=true,所以在js代码中如果验证条件通过,就要使某元素的SetIsValid(true),就不会显示警告图标,如果验证条件未通过,就要使用某元素的SetIsValid(false),就会显示警告图标。分析这里大家就会明白,做动态验证的关键在于设置SetIsValid属性。不说了上代码。
aspx页面部分代码:

(略)
                                    <td class="auto-style7">
                                        <dx:ASPxLabel ID="ASPxLabel14" runat="server" Text="回传件号码" Theme="Aqua" >
                                        </dx:ASPxLabel>
                                    </td>
                                    <td class="auto-style8">
                                        <dx:ASPxTextBox ID="hcjhm" ClientInstanceName="hcjhm" EnableClientSideAPI="true" runat="server" Theme="Aqua"  ReadOnly="false" Text='<%# Bind("回传件号码") %>' Value='<%# Bind("回传件号码") %>' ClientSideEvents-TextChanged="function(s,e){hcjhm_onTextChanged(s, e);}">
                                         <ValidationSettings validateonleave="False"  EnableCustomValidation="true" ErrorDisplayMode="ImageWithTooltip">
                                                <RequiredField ErrorText="" />
                                            </ValidationSettings>
                                        </dx:ASPxTextBox>
                                    </td>
(略)

注意:这一行代码在相关控件元素设置中要有,因为SetIsValid属性需要其他属性的配合,没有这些属性,SetIsValid可能会失效不起作用。这也是DEV很无奈的地方。其实有好多属性是相互关联的,常用DEV做设计的程序猿们都明白这一点!

js代码:

  //文档签订日期变化事件
        function wdqdrq_onDataChanged(s,e)
        {
            if(wjsx_str=="有")
            {
                if(wdqdrq.GetText()==null||wdqdrq.GetText()=="")
                {
                    wdqdrq.SetIsValid(false);
                }
                else
                {
                    wdqdrq.SetIsValid(true);
                }
            }
            if(wjsx_str=="无")
            {
                if (wdqdrq.GetText() != null||wdqdrq.GetText() !="") {
                    wdqdrq.SetIsValid(false);
                }
                else
                {
                    wdqdrq.SetIsValid(true);
                }
            }

        }
        //文件有效起变化事件
        function wjyxq_onDataChanged(s, e) {
            if (wjsx_str == "有") {
                if (wjyxq.GetText() == null || wjyxq.GetText() == "") {
                    wjyxq.SetIsValid(false);
                }
                else {
                    wjyxq.SetIsValid(true);
                }
            }
            if (wjsx_str == "无") {
                if (wjyxq.GetText() != null || wjyxq.GetText() != "") {
                    wjyxq.SetIsValid(false);
                }
                else {
                    wjyxq.SetIsValid(true);
                }
            }

        }

        //文件有效止变化事件
        function wjyxz_onDataChanged(s, e) {
            if (wjsx_str == "有") {
                if (wjyxz.GetText() == null || wjyxz.GetText() == "") {
                    wjyxz.SetIsValid(false);
                }
                else {
                    wjyxz.SetIsValid(true);
                }
            }
            if (wjsx_str == "无") {
                if (wjyxz.GetText() != null || wjyxz.GetText() != "") {
                    wjyxz.SetIsValid(false);
                }
                else {
                    wjyxz.SetIsValid(true);
                }
            }

        }

        //终止标记变化事件
        function zzbj_onSelectedIndexChanged(s, e){
            if (wjsx_str == "有") {
                if (zzbj.GetText() == null || zzbj.GetText() == "") {
                    zzbj.SetIsValid(false);
                }
                else {
                    zzbj.SetIsValid(true);
                }
            }
            if (wjsx_str == "无") {
                if (zzbj.GetText() != null || zzbj.GetText() != "") {
                    zzbj.SetIsValid(false);
                }
                else {
                    zzbj.SetIsValid(true);
                }
            }

        }

        //受理法院变化事件
        function slfy_onSelectedIndexChanged(s, e) {
            if (wjsx_str == "有") {
                if (slfy.GetText() == null || slfy.GetText() == "") {
                    slfy.SetIsValid(false);
                }
                else {
                    slfy.SetIsValid(true);
                }
            }
            if (wjsx_str == "无") {
                if (slfy.GetText() != null || slfy.GetText() != "") {
                    slfy.SetIsValid(false);
                }
                else {
                    slfy.SetIsValid(true);
                }
            }

        }

        //回传方式变化事件
        function hcfs_onSelectedIndexChanged(s, e) {
            if (wjsx_str == "有") {
                if (hcfs.GetText() == null || hcfs.GetText() == "") {
                    hcfs.SetIsValid(false);
                }
                else {
                    hcfs.SetIsValid(true);
                }
            }
            if (wjsx_str == "无") {
                if (hcfs.GetText() != null || hcfs.GetText() != "") {
                    hcfs.SetIsValid(false);
                }
                else {
                    hcfs.SetIsValid(true);
                }
            }

        }

        //回传件号码变化事件
        function hcjhm_onTextChanged(s, e) {
            if (wjsx_str == "有") {
                if (hcjhm.GetText() == null || hcjhm.GetText() == "") {
                    hcjhm.SetIsValid(false);
                }
                else {
                    hcjhm.SetIsValid(true);
                }
            }
            if (wjsx_str == "无") {
                if (hcjhm.GetText() != null || hcjhm.GetText() != "") {
                    hcjhm.SetIsValid(false);
                }
                else {
                    hcjhm.SetIsValid(true);
                }
            }

        }

        function Validate(s,e) {
            if (e.value == "无")
            {
                
                if (wdqdrq.GetText().trim() != "") {
                    wdqdrq.errorText = "必为空!";
                    wdqdrq.SetIsValid(false);
                }
                else {
                    wdqdrq.SetIsValid(true);
                }
                
     
                if (wjyxq.GetText().trim() != "") {
                    wjyxq.errorText = "必为空!";
                    wjyxq.SetIsValid(false);
                }
                else {
                    wjyxq.SetIsValid(true);
                }

                if (wjyxz.GetText().trim() != "") {
                    wjyxz.errorText = "必为空!";
                    wjyxz.SetIsValid(false);
                }
                else {
                    wjyxz.SetIsValid(true);
                }

                if (zzbj.GetText().trim() != "") {
                    zzbj.errorText = "必为空!";
                    zzbj.SetIsValid(false);
                }
                else {
                    zzbj.SetIsValid(true);
                }

                if (slfy.GetText().trim() != "") {
                    slfy.errorText = "必为空!";
                    slfy.SetIsValid(false);
                }
                else {
                    slfy.SetIsValid(true);
                }

                if (hcfs.GetText().trim() != "") {
                    hcfs.errorText = "必为空!";
                    hcfs.SetIsValid(false);
                }
                else {
                    hcfs.SetIsValid(true);
                }

                if (hcjhm.GetText().trim() != "") {
                    hcjhm.errorText = "必为空!";
                    hcjhm.SetIsValid(false);
                }
                else {
                    hcjhm.SetIsValid(true);
                }
 
            }
           else
            {
                
                if (wdqdrq.GetText().trim() == "") {
                    wdqdrq.errorText = "必填!";
                    wdqdrq.SetIsValid(false);
                }
                else {
                    wdqdrq.SetIsValid(true);
                }

                if (wjyxq.GetText().trim() == "") {
                    wjyxq.errorText = "必填!";
                    wjyxq.SetIsValid(false);
                }
                else {
                    wjyxq.SetIsValid(true);
                }

                if (wjyxz.GetText().trim()== "") {
                    wjyxz.errorText = "必填!";
                    wjyxz.SetIsValid(false);
                }
                else {
                    wjyxz.SetIsValid(true);
                }

                if (zzbj.GetText().trim() == "") {
                    zzbj.errorText = "必填!";
                    zzbj.SetIsValid(false);
                }
                else {
                    zzbj.SetIsValid(true);
                }

                if (slfy.GetText().trim() == "") {
                    slfy.errorText = "必填!";
                    slfy.SetIsValid(false);
                }
                else {
                    slfy.SetIsValid(true);
                }

                if (hcfs.GetText().trim() == "") {
                    hcfs.errorText = "必填!";
                    hcfs.SetIsValid(false);
                }
                else {
                    hcfs.SetIsValid(true);
                }
                if (hcjhm.GetText().trim() == "") {
                    hcjhm.errorText = "必填!";
                    hcjhm.SetIsValid(false);
                }
                else {
                    hcjhm.SetIsValid(true);
                }

               
            }
        }
        function btn_cancel()
        {
            wdtpzb_grd.CancelEdit();
        }
        function btn_update()
        {
            wdtpzb_grd.UpdateEdit();
        }
          
        function wjsx_Init(s, e) {

            if (wjsx.GetText().trim() == "无") {
                wdqdrq.SetEnabled(false);
                wjyxq.SetEnabled(false);
                wjyxz.SetEnabled(false);
                zzbj.SetEnabled(false);
                slfy.SetEnabled(false);
                hcfs.SetEnabled(false);
                hcjhm.SetEnabled(false);

                //注意:SetEnabled(false)会改变isValid为false,所以在改变了SetEnabled(false)时,应根据值再次设定isValid的值
                if (wdqdrq.GetText().trim() != "") {
                    wdqdrq.errorText = "必为空!";
                    wdqdrq.SetIsValid(false);
                }
                else {
                    wdqdrq.SetIsValid(true);
                }


                if (wjyxq.GetText().trim() != "") {
                    wjyxq.errorText = "必为空!";
                    wjyxq.SetIsValid(false);
                }
                else {
                    wjyxq.SetIsValid(true);
                }

                if (wjyxz.GetText().trim() != "") {
                    wjyxz.errorText = "必为空!";
                    wjyxz.SetIsValid(false);
                }
                else {
                    wjyxz.SetIsValid(true);
                }

                if (zzbj.GetText().trim() != "") {
                    zzbj.errorText = "必为空!";
                    zzbj.SetIsValid(false);
                }
                else {
                    zzbj.SetIsValid(true);
                }

                if (slfy.GetText().trim() != "") {
                    slfy.errorText = "必为空!";
                    slfy.SetIsValid(false);
                }
                else {
                    slfy.SetIsValid(true);
                }

                if (hcfs.GetText().trim() != "") {
                    hcfs.errorText = "必为空!";
                    hcfs.SetIsValid(false);
                }
                else {
                    hcfs.SetIsValid(true);
                }

                if (hcjhm.GetText().trim() != "") {
                    hcjhm.errorText = "必为空!";
                    hcjhm.SetIsValid(false);
                }
                else {
                    hcjhm.SetIsValid(true);
                }
            }
            if(wjsx.GetText().trim() == "有")
            {
                wdqdrq.SetEnabled(true);
                wjyxq.SetEnabled(true);
                
                wjyxz.SetEnabled(true);
                zzbj.SetEnabled(true);
                slfy.SetEnabled(true);
                hcfs.SetEnabled(true);
                hcjhm.SetEnabled(true);

                //注意:SetEnabled(true)会改变isValid为true,所以在改变了SetEnabled(true)时,应根据值再次设定isValid的值

                if (wdqdrq.GetText().trim() == "") {
                    wdqdrq.errorText = "必填!";
                    wdqdrq.SetIsValid(false);
                }
                else {
                    wdqdrq.SetIsValid(true);
                }

                if (wjyxq.GetText().trim() == "") {
                    wjyxq.errorText = "必填!";
                    wjyxq.SetIsValid(false);
                }
                else {
                    wjyxq.SetIsValid(true);
                }

                if (wjyxz.GetText().trim() == "") {
                    wjyxz.errorText = "必填!";
                    wjyxz.SetIsValid(false);
                }
                else {
                    wjyxz.SetIsValid(true);
                }

                if (zzbj.GetText().trim() == "") {
                    zzbj.errorText = "必填!";
                    zzbj.SetIsValid(false);
                }
                else {
                    zzbj.SetIsValid(true);
                }

                if (slfy.GetText().trim() == "") {
                    slfy.errorText = "必填!";
                    slfy.SetIsValid(false);
                }
                else {
                    slfy.SetIsValid(true);
                }

                if (hcfs.GetText().trim() == "") {
                    hcfs.errorText = "必填!";
                    hcfs.SetIsValid(false);
                }
                else {
                    hcfs.SetIsValid(true);
                }
                if (hcjhm.GetText().trim() == "") {
                    hcjhm.errorText = "必填!";
                    hcjhm.SetIsValid(false);
                }
                else {
                    hcjhm.SetIsValid(true);
                }



            }
        }
           
        
        var wjsx_str = "";//全局变量:文件时间选择结果
        function wjsx_selectChanging(s, e) {
            wjsx_str = wjsx.GetText().trim();
            if (wjsx.GetText().trim() == "无") {
          
                    wdqdrq.SetValue(null);                   
                    wjyxq.SetValue(null);
                    wjyxz.SetValue(null);
                    zzbj.SetValue("");
                    slfy.SetValue("");
                    hcfs.SetValue("");
                    hcjhm.SetValue("");

                    wdqdrq.SetEnabled(false);
                    wjyxq.SetEnabled(false);
                    wjyxz.SetEnabled(false);
                    zzbj.SetEnabled(false);
                    slfy.SetEnabled(false);
                    hcfs.SetEnabled(false);
                    hcjhm.SetEnabled(false);

                //注意:SetEnabled(false)会改变isValid为false,所以在改变了SetEnabled(false)时,应根据值再次设定isValid的值
                    if (wdqdrq.GetText().trim() != "") {
                        wdqdrq.errorText = "必为空!";
                        wdqdrq.SetIsValid(false);
                    }
                    else {
                        wdqdrq.SetIsValid(true);
                    }


                    if (wjyxq.GetText().trim() != "") {
                        wjyxq.errorText = "必为空!";
                        wjyxq.SetIsValid(false);
                    }
                    else {
                        wjyxq.SetIsValid(true);
                    }

                    if (wjyxz.GetText().trim() != "") {
                        wjyxz.errorText = "必为空!";
                        wjyxz.SetIsValid(false);
                    }
                    else {
                        wjyxz.SetIsValid(true);
                    }

                    if (zzbj.GetText().trim() != "") {
                        zzbj.errorText = "必为空!";
                        zzbj.SetIsValid(false);
                    }
                    else {
                        zzbj.SetIsValid(true);
                    }

                    if (slfy.GetText().trim() != "") {
                        slfy.errorText = "必为空!";
                        slfy.SetIsValid(false);
                    }
                    else {
                        slfy.SetIsValid(true);
                    }

                    if (hcfs.GetText().trim() != "") {
                        hcfs.errorText = "必为空!";
                        hcfs.SetIsValid(false);
                    }
                    else {
                        hcfs.SetIsValid(true);
                    }

                    if (hcjhm.GetText().trim() != "") {
                        hcjhm.errorText = "必为空!";
                        hcjhm.SetIsValid(false);
                    }
                    else {
                        hcjhm.SetIsValid(true);
                    }

                }
            else {
        
                    wdqdrq.SetEnabled(true);
                    wjyxq.SetEnabled(true);
                    wjyxz.SetEnabled(true);
                    zzbj.SetEnabled(true);
                    slfy.SetEnabled(true);
                    hcfs.SetEnabled(true);
                    hcjhm.SetEnabled(true);


                //注意:SetEnabled(true)会改变isValid为true,所以在改变了SetEnabled(true)时,应根据值再次设定isValid的值
                    if (wdqdrq.GetText().trim() == "") {
                        wdqdrq.errorText = "必填!";
                        wdqdrq.SetIsValid(false);
                    }
                    else {
                        wdqdrq.SetIsValid(true);
                    }

                    if (wjyxq.GetText().trim() == "") {
                        wjyxq.errorText = "必填!";
                        wjyxq.SetIsValid(false);
                    }
                    else {
                        wjyxq.SetIsValid(true);
                    }

                    if (wjyxz.GetText().trim() == "") {
                        wjyxz.errorText = "必填!";
                        wjyxz.SetIsValid(false);
                    }
                    else {
                        wjyxz.SetIsValid(true);
                    }

                    if (zzbj.GetText().trim() == "") {
                        zzbj.errorText = "必填!";
                        zzbj.SetIsValid(false);
                    }
                    else {
                        zzbj.SetIsValid(true);
                    }

                    if (slfy.GetText().trim() == "") {
                        slfy.errorText = "必填!";
                        slfy.SetIsValid(false);
                    }
                    else {
                        slfy.SetIsValid(true);
                    }

                    if (hcfs.GetText().trim() == "") {
                        hcfs.errorText = "必填!";
                        hcfs.SetIsValid(false);
                    }
                    else {
                        hcfs.SetIsValid(true);
                    }
                    if (hcjhm.GetText().trim() == "") {
                        hcjhm.errorText = "必填!";
                        hcjhm.SetIsValid(false);
                    }
                    else {
                        hcjhm.SetIsValid(true);
                    }

                }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值