jQuery MiniUI

标题: grid行内编辑 单元格验证问题 [打印本页]

作者: 黑屏了0v0    时间: 2017-5-17 10:29:55     标题: grid行内编辑 单元格验证问题

如何通过某一列的值验证其他某些列?比如:A、B两列,需验证A>B的值,先填写A=3,再填写B=4则验证不通过,B单元格变红色提示错误。现在去编辑A,改为A=6,则验证通过,但B的错误提示和红色怎么取消?
function onCellValidation(e) {
     if(e.field == A) {
         if(e.value<e.record.B) {
             e.errorText = "A不能小于B";
             e.isValid = false;
         }
     }
     if(e.field ==B) {
         if(e.value>e.record.A) {
             e.errorText = "B不能大于A";
             e.isValid = false;
         }
     }
}

作者: dforce    时间: 2017-5-17 11:21:45

需要再次触发B单元格的验证,默认的验证只验证当前编辑完的单元格。
可以在编辑完后主动调用方法去验证指定单元格。
grid.validateCell(row, column);
[attach]9214[/attach]
作者: 黑屏了0v0    时间: 2017-5-17 11:48:14

dforce 发表于 2017-5-17 11:21
需要再次触发B单元格的验证,默认的验证只验证当前编辑完的单元格。
可以在编辑完后主动调用方法去验证指定 ...

明白了,这样是可以解决问题,但是使用setTimeout()的方式有点。。。。不知道有没有其他方式?比如设置某个指定单元格验证通过的方法?
作者: dforce    时间: 2017-5-17 13:10:21

黑屏了0v0 发表于 2017-5-17 11:48
明白了,这样是可以解决问题,但是使用setTimeout()的方式有点。。。。不知道有没有其他方式?比如设置某 ...

没什么问题的,就这样用吧,
在oncellvalidation事件中,可以指定某单元格强制通过验证。
e.setIsValue=true;
作者: 黑屏了0v0    时间: 2017-5-17 13:31:48

dforce 发表于 2017-5-17 13:10
没什么问题的,就这样用吧,
在oncellvalidation事件中,可以指定某单元格强制通过验证。
e.setIsValue=tr ...

好的,谢谢
作者: kubi    时间: 2017-11-28 14:39:07

本帖最后由 kubi 于 2017-11-28 14:44 编辑
dforce 发表于 2017-5-17 13:10
没什么问题的,就这样用吧,
在oncellvalidation事件中,可以指定某单元格强制通过验证。
e.setIsValue=tr ...

那要如何在事件里获得其他单元格?

    var record=e.record;
    if(e.field=="PLOVRFRHH"||e.field=="PLOVRTOHH"){
       if(record.PLOVRFRHH!=""&&record.PLOVRTOHH!=""){
            if(record.PLOVRFRHH>=record.PLOVRTOHH){
                    e.errorText = "<?php echo $this->translate("起迄时有误");?>";     
                    e.isValid = false;  
                }else{
                        如何在事件里获得另一个单元格,并让它的强制通过验证
                    }
           }
     }

validateCell这个方法是否是最近的版本才有的?
作者: felt    时间: 2017-11-28 15:41:21

kubi 发表于 2017-11-28 14:39
那要如何在事件里获得其他单元格?

    var record=e.record;

cell是个由row和column组成的一个对象,只能通过重新验证才能触发编辑。
var row=e.record;
var column=grid.getColumn(columnName)
var cell=[row,column]
grid.setrCurrentecell(cell)
作者: kubi    时间: 2017-11-28 15:58:58

felt 发表于 2017-11-28 15:41
cell是个由row和column组成的一个对象,只能通过重新验证才能触发编辑。
var row=e.record;
var column=g ...

var row=e.record;
var column=grid.getColumn(columnName)
grid.validateCell(row,column);
这样就能让某个单元格进行验证么?
其实我也是遇到了楼主的问题。如果不用定时器的话,那应该如何做呢?
我看你上面说可以用e.setIsValue=true让单元格的验证结果变成true,但是我不知道该如何在1单元格验证后获得2单元格的对象将其的验证结果变true




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2