转载:http://www.cnblogs.com/yueye/p/5180644.html
今天项目需要用了下EasyUI的datagrid的行编辑功能,跟着API来,只要是将各种状态时的处理逻辑弄好,还是蛮不错的。
开发过程中,遇到了个问题,在编辑完成后我需要获取datagrid所有处于编辑状态的行,进行结束编辑后,获取编辑行的值。这时的操作,我可以是将datagrid所有的行都取出来,然后循环都进行endEdit操作,这样确实可以做到。但是考虑到,在datagrid中有可能只有少数的行是编辑状态的,这样如果全部循环去关闭,明显的在做一些无用的操作。
正常的思路,我应该是找到正在编辑的所有行,然后有针对性的关闭。但是EasyUI并没有提供该方法。也在网上找了下,发现在网上问这个问题的人也是存在,但是并没找到满意的答案。所以就自己写了一个获取的方法。分享出来,希望对需要的人有所帮助。
/* * datagrid 获取正在编辑状态的行,使用如下: * $('#id').datagrid('getEditingRowIndexs'); //获取当前datagrid中在编辑状态的行编号列表 */ $.extend($.fn.datagrid.methods, { getEditingRowIndexs: function(jq) { var rows = $.data(jq[0], "datagrid").panel.find('.datagrid-row-editing'); var indexs = []; rows.each(function(i, row) { var index = row.sectionRowIndex; if (indexs.indexOf(index) == -1) { indexs.push(index); } }); return indexs; } });