jQuery MiniUI

标题: datagrid如何判断当前单元格值是否被改动 [打印本页]

作者: Eric_RushMan    时间: 2014-3-24 09:49:53     标题: datagrid如何判断当前单元格值是否被改动

miniUI的Demo中单元格被改变后右上角出现小三角,请问如何判断单元格是否改变?isChanged()方法是判断整个表格是否变化,有没有单元格的ischanged()方法?
作者: factory    时间: 2014-3-24 10:26:22

var changes = grid.getChanges("modified",true)

获取出来的是 被修改的单元格.

然后你再从这些被获取的被修改单元格中查看你要的当前单元格,是否在这个里面,如果在,就是被改动过的
作者: Eric_RushMan    时间: 2014-3-24 11:04:47

factory 发表于 2014-3-24 10:26
var changes = grid.getChanges("modified",true)

获取出来的是 被修改的单元格.

这个需要获取当前正在编辑的单元格,如何获取当前正在编辑的单元格?
作者: factory    时间: 2014-3-24 13:49:57

Eric_RushMan 发表于 2014-3-24 11:04
这个需要获取当前正在编辑的单元格,如何获取当前正在编辑的单元格?

编辑必定选中

所以获取当前选中的单元格即可

grid.getCurrentCell()

返回的是一个数组, 0是单元格的行,1是单元格的列
作者: Eric_RushMan    时间: 2014-3-24 15:18:43

factory 发表于 2014-3-24 13:49
编辑必定选中

所以获取当前选中的单元格即可

你这是在cellbeginedit执行时可以getCurrent,但是若是在cellendedit执行时,当前选中单元格并不一定是当前刚刚编辑了的单元格,然而判断单元格值是否改变应该在cellendedit之后执行吧,在cellbeginedit执行没有意义,所以getCurrent是不成力的
作者: factory    时间: 2014-3-24 15:51:07

Eric_RushMan 发表于 2014-3-24 15:18
你这是在cellbeginedit执行时可以getCurrent,但是若是在cellendedit执行时,当前选中单元格并不一定是当 ...

那你这样

比如你要判断某一行row,某一列field 的单元格是否修改过了

因为grid.getChanges("modified",true)返回的是一个修改的单元格的数组,里面的每一个对象里面都有行的id和field字段名, {id:"xxxxx",field:"name"} 比如你修改的是其中一个单元格是id为xxx的行的,name姓名这一个单元格

你根据row.id (id是表格的idField,默认就是一行数据的id), 和field去getChanges()里面找,如果都id==row.id && field == field  那么说明这个row行,field列的单元格是被修改过的
作者: Eric_RushMan    时间: 2014-3-24 16:01:52

factory 发表于 2014-3-24 15:51
那你这样

比如你要判断某一行row,某一列field 的单元格是否修改过了

刚测试了API中提供的cellcommitedit事件,在这个事件里面判断就可以了。而且貌似这个事件只有在当前单元格值发生改变了才会触发,否则不会触发




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