jQuery MiniUI

 找回密码
 立即注册
查看: 3644|回复: 6
打印 上一主题 下一主题

datagrid如何判断当前单元格值是否被改动 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2014-3-24 09:49:53 |只看该作者 |倒序浏览
miniUI的Demo中单元格被改变后右上角出现小三角,请问如何判断单元格是否改变?isChanged()方法是判断整个表格是否变化,有没有单元格的ischanged()方法?

Rank: 8Rank: 8

沙发
发表于 2014-3-24 10:26:22 |只看该作者
var changes = grid.getChanges("modified",true)

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

然后你再从这些被获取的被修改单元格中查看你要的当前单元格,是否在这个里面,如果在,就是被改动过的

Rank: 3Rank: 3

板凳
发表于 2014-3-24 11:04:47 |只看该作者
factory 发表于 2014-3-24 10:26
var changes = grid.getChanges("modified",true)

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

这个需要获取当前正在编辑的单元格,如何获取当前正在编辑的单元格?

Rank: 8Rank: 8

地板
发表于 2014-3-24 13:49:57 |只看该作者
Eric_RushMan 发表于 2014-3-24 11:04
这个需要获取当前正在编辑的单元格,如何获取当前正在编辑的单元格?

编辑必定选中

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

grid.getCurrentCell()

返回的是一个数组, 0是单元格的行,1是单元格的列

Rank: 3Rank: 3

5#
发表于 2014-3-24 15:18:43 |只看该作者
factory 发表于 2014-3-24 13:49
编辑必定选中

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

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

Rank: 8Rank: 8

6#
发表于 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列的单元格是被修改过的

Rank: 3Rank: 3

7#
发表于 2014-3-24 16:01:52 |只看该作者
factory 发表于 2014-3-24 15:51
那你这样

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

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

Archiver|普加软件

GMT+8, 2024-11-29 04:18 , Processed in 1.024733 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部