easyui datagrid getChecked无法获取勾选的数据

easyui datagrid在编辑状态下,用鼠标勾选了数据行后,在调用acceptChanges接受数据更改,恢复到不可编辑状态时,此时调用getChecked无法获取到之前在编辑状态下勾选的数据,虽然此时数据行前面的复选框checkbox还是在勾选的状态。

easyui版本1.4.3

2个回答

答案
之前碰到过,经过研究源代码发现,应该是easyui datagrid的bug,datagrid getChecked获取勾选的数据行是通过判断tr是否有datagrid-row-checked这个样式来取数据的
if(type=="checked"){
return (_70e==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-checked");
}
可编辑的datagrid执行acceptChanges方法后,将勾选数据行的datagrid-row-checked给去掉了,所以导致无法获取被勾选的数据。

解决办法就是调用getSelections方法来替代getChecked

要想获得上图所选取的元素只能用getChecked

getSelected不能进行多个选择,只能单选
1
2
3
4

/* getSelected取得选中的数据,否则为null /
var user=$("#first").datagrid("getSelected");
/
getChecked取得chcekbox选择行数据, */
var data= $("#user_tree").tree("getChecked");

  getChecked在多选树时使用

getSelected:取得第一个选中行数据,则放回选中的数据,若没有选中行,则返回 null。
getSelections:取得所有被选中的行数据,返回元素记录的数组数据。

getChecked:取得复选框打勾的值,返回数组数据。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!