今天在使用 getChecked方法的时候发现个小问题:
当我在选中了一行或多行删除后,再次选择其他要删除的数据时,调试发现,getChecked方法返回的记录中还包括之前删除中的最后一条记录。包括 getSelections 和getSelected这两个方法也是一样。
它们在 JQuery EasyUI 1.4.3版的中文API中是这样定义的:
getChecked:在复选框被选中的时候返回所有行。
getSelected:返回第一个被选中的行或如果没有选中的行这返回null。
getSelections:返回所有被选中的行,当没有记录被选中的时候将返回一个空数组。
看了定义是没有问题的,可是试了好多遍都还是不行,调用reload方法重新加载不行,清浏览器缓存也没用,后来只能在执行完删除操作后,调用clearSelections方法清空选择才行(把datagrid的属性singleSelect(是否为单选)值设置成true也可以解决这个问题,不过这样就变成单选了)。
1 2 3 4 5 6 |
onLoadSuccess:function(data){ //清除所有的选择 goodsGrid.datagrid("clearSelections"); goodsGrid.datagrid('unselectAll'); goodsGrid.datagrid('uncheckAll'); } |
另外,还发现有些朋友在使用getSelections这个方法时,不管选择几行内容总是只返回一行数据。
网友们给出的原因是:如果在datagrid中设置了idField属性时,在返回数据的时候要有id字段,并且id要唯一;如果不设置idField,则会正常获取选中的行数。