今天使用easyUI的datagrid遇到的一个问题是:
选择一行以后,点击另外一行的编辑按钮,
发现将之前选中的那行内容加载到了编辑菜单中,而不是新点击的这行。(已经设置了单选)
我把这种问题称为“延迟选择”。
我这里是通过getSelections方法获得要编辑的内容加载到编辑菜单中的,
所以从这个问题可以看到,在编辑菜单中调用getSelections方法时,当前被选中的行还是之前选中的那行,
还没来得及切换到点击编辑的这行上。
所以解决的办法是将要编辑这行的id传入编辑菜单,然后根据id选中这行,
这时候再使用getSelections方法获得这行的各项字段加载到编辑菜单中。
代码如下:
<span style="white-space:pre"> </span>if (id != undefined) {
dataGrid.datagrid('selectRecord',id);
}
var rows = dataGrid.datagrid('getSelections');
var id = rows[0].id;
var name = rows[0].name;
var code = rows[0].intentCode;
var managerName = rows[0].salesManagerName;
dataGrid.datagrid('unselectAll').datagrid('uncheckAll');
也许还存在更好的解决办法,欢迎讨论。