jQuery MiniUI

标题: 请问Grid可以实现联动验证吗? [打印本页]

作者: mex0    时间: 2013-3-14 12:50:01     标题: 请问Grid可以实现联动验证吗?

本帖最后由 mex0 于 2013-3-14 12:50 编辑

比如:如图所示当我选择年龄大于10时出生日期不能为空,当年龄小于10时出生日期可以为空,不知这个有木有方法实现那?
[attach]1462[/attach]

作者: factory    时间: 2013-3-14 14:04:30

你用单元格编辑来做吧
先让表格允许单元格自动验证,设置allowCellValid="true"
然后监听oncellvalidation事件
oncellvalidation = "cellvalidation"

function cellvalidation(e){
            if(e.field == "position"){
                  var record= e.record;
                  if(record.dept_name =="技术部"){
                       if(record.position_name !="美工"){
                           e.isValid=false;
                 }
                  }
            }
}

作者: mex0    时间: 2013-3-14 15:02:32

本帖最后由 mex0 于 2013-3-14 15:07 编辑
factory 发表于 2013-3-14 14:04
你用单元格编辑来做吧
先让表格允许单元格自动验证,设置allowCellValid="true"
然后监听oncellvalidation ...

我试了一下不行哦,我是用如上DOME中的新添加多行来做,e.record,e.field 都是undefined 错哦!
作者: factory    时间: 2013-3-14 15:07:31

mex0 发表于 2013-3-14 15:02
我试了一下不行哦,我是用如上DOME中的新添加一个行来做,e.record,e.field 都是undefined 错哦! ...

我说了用单元格编辑,不要用行编辑
作者: mex0    时间: 2013-3-14 18:53:03

factory 发表于 2013-3-14 15:07
我说了用单元格编辑,不要用行编辑

可否发个完整的DEMO那?感谢!
作者: niko    时间: 2013-3-14 19:26:07

checkrecursive 是联动选择。
你可以设置false
作者: nbakill2    时间: 2013-3-15 08:39:15

niko 发表于 2013-3-14 19:26
checkrecursive 是联动选择。
你可以设置false

checkrecursive

这个是哪个控件的属性?
作者: factory    时间: 2013-3-15 09:06:17

nbakill2 发表于 2013-3-15 08:39
checkrecursive

这个是哪个控件的属性?

所有的代码就是我上面给的了

你把if里面的== 后面的字段名改成你自己的就可以了

关键是
1.先让表格允许单元格自动验证,设置allowCellValid="true"
2.然后监听oncellvalidation事件
3.e.isValid=false;    //这个是让验证不通过
作者: mex0    时间: 2013-3-15 09:11:25

factory 发表于 2013-3-15 09:06
所有的代码就是我上面给的了

你把if里面的== 后面的字段名改成你自己的就可以了

Hi,谢谢!你的意思,我明白啊,可是不行呀,所以才让你发完整的DEMO啊!
作者: factory    时间: 2013-3-15 10:25:30

mex0 发表于 2013-3-15 09:11
Hi,谢谢!你的意思,我明白啊,可是不行呀,所以才让你发完整的DEMO啊! ...

[attach]1464[/attach]

如果部门选择“技术部”的话,职位必须为“美工”,不然就会单元格验证不通过


作者: mex0    时间: 2013-3-15 10:59:38

factory 发表于 2013-3-15 10:25
如果部门选择“技术部”的话,职位必须为“美工”,不然就会单元格验证不通过

...

谢谢!这种是可以的,我上面问的是在DEMO GRID 编辑静态表格的例子上进行完善,在保存的时候加一个验证功能,如果只加一行可以进行验证,但添加多行就不可以了联动验证了,不知明白我意思不?有木有实现方法那?
作者: factory    时间: 2013-3-15 12:49:15

mex0 发表于 2013-3-15 10:59
谢谢!这种是可以的,我上面问的是在DEMO GRID 编辑静态表格的例子上进行完善,在保存的时候加一个验证功 ...

你这种编辑方式实现不了
如果需要联动编辑的话,你还是用单元格编辑吧
作者: mex0    时间: 2013-3-25 17:02:52

factory 发表于 2013-3-15 12:49
你这种编辑方式实现不了
如果需要联动编辑的话,你还是用单元格编辑吧

问一下,新增的行编辑下怎么实现同一行列与列之间赋值。
作者: factory    时间: 2013-3-25 17:53:12

mex0 发表于 2013-3-25 17:02
问一下,新增的行编辑下怎么实现同一行列与列之间赋值。

行编辑可以直接获取编辑器对象,你给编辑器一个id,获取编辑器来做
作者: mex0    时间: 2013-3-25 19:41:56

factory 发表于 2013-3-25 17:53
行编辑可以直接获取编辑器对象,你给编辑器一个id,获取编辑器来做

怎么实现那? 如主题图中的例子, 新增多行时,同行中性别发生变化,年龄也发变化,能发一下代码或DOME不?谢谢!
作者: factory    时间: 2013-3-26 14:18:10

mex0 发表于 2013-3-25 19:41
怎么实现那? 如主题图中的例子, 新增多行时,同行中性别发生变化,年龄也发变化,能发一下代码或DOME不 ...

比如你的性别发生了变化,如果年龄也跟着变化,那就获取年龄的那个编辑器  getCellEditor(column,row) ,然后再去操作年龄




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