easyUI - dataGrid 取得編輯後的cell 值
问题描述
红圈就是我正在编辑的数据
我需要编辑 dataGrid 其中的一个单元格数据,然后点击提交。这时候就遇到一个恶心的问题。我获取的 rows 里没有包含我修改的值而是初始值,只有你自己手动切换选择表格单元格的时候才能获取到修改的值(点击其它单元格,默认结束编辑)。然后自己扒拉扒拉的找了下其实最简单的用「endEdit」 属性来结束当前的编辑行。
我需要编辑 dataGrid 其中的一个单元格数据,然后点击提交。这时候就遇到一个恶心的问题。我获取的 rows 里没有包含我修改的值而是初始值,只有你自己手动切换选择表格单元格的时候才能获取到修改的值(点击其它单元格,默认结束编辑)。然后自己扒拉扒拉的找了下其实最简单的用「endEdit」 属性来结束当前的编辑行。
// 语法
$('#datagrid').datagrid('endEdit', i);
因此这里提供 2 种方式吧,我验证了第一种。
问题解决
1、 最懒的方式:点击提交的时候全部结束编辑(自己验证过)
// 将 dataGrid 所有的行都结束编辑
var endRows = $('#datagrid').datagrid("getRows");
for(var i =0; i < endRows.length; i++){
$('#datagrid').datagrid('endEdit', i);
}
// 获取选中的行
var rows=$('#datagrid').datagrid('getChecked');
...
// 这个时候 rows 里就能获取到你当前正在编辑 cell 的值了
2. 触发 focusout 事件
input.bind('focusout', function (e) {
dg.datagrid('endEdit', index);
});
https://www.jianshu.com/p/a5f0afa46186
留言
張貼留言