这个错误是 easyUI源码的bug,纠结了好多天,尝试了好多方法最后终于解决了,再次分享一下
easyui是根据datagrid-row-index和datagrid-row-r1-x-x来定位行的。
但在deleteRow方法中,删掉当前行后,作者只把当前行后面的行的datagrid-row-index更新了。也就是往前提1,弥补被删除行的空缺,但对datagrid-row-r1-x-x却没做任何改动。
这样就会造成下次执行 opts.finder.getTr的时候,获得的row错误,不是自己点击的row。
解决方法:
在jquery.easyui.min.js 里找到deleteRow方法,
改之后的方法为:
deleteRow: function(target, index) { var opts = $.data(target, "datagrid").options; var data = $.data(target, "datagrid").data; opts.finder.getTr(target, index).remove(); var gd = $.data(target, "datagrid"); for (var i = index + 1; i < data.rows.length; i++) { opts.finder.getTr(target, i, "body", 2).attr("datagrid-row-index", i - 1) .attr("id",gd.rowIdPrefix+"-2-"+(i-1)); var tr1 = opts.finder.getTr(target, i, "body", 1).attr("datagrid-row-index", i - 1) .attr("id",gd.rowIdPrefix+"-1-"+(i-1)); if (opts.rownumbers) { tr1.find("div.datagrid-cell-rownumber").html(i); } } data.total -= 1; data.rows.splice(index, 1); }
直接复制粘贴就可以了
相关推荐
easyui datagrid表格打印,支持formatter格式化数据的打印,还原的最初datagrid 的表格数据
两种方法将easyui datagrid 中的数据导出到Excel中,均以验证可以正常使用
easyui datagrid 删除多行操作时会出现异常,该方法可以直接加载一次数据,避免该问题的发生
easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格
easyUI datagrid 行上移,下移,置顶,置底的方法
easyui datagrid editor回车切换单元格示例,适合熟悉easyui但又不懂如何做的人员,可能参考一下源码JS。
JS EasyUI DataGrid动态加载数据
jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) Demo 扩展 jQuery EasyUI Datagrid 数据行鼠标悬停离开事件,源码奉献!!!
EasyUI DataGrid过滤用法实例
jquery easyui 扩展 datagrid 自定义动态隐藏显示列
easyui datagrid 多条件筛选 可复选 过滤 例如过滤200-300 500-600 类似淘宝筛选 但允许复选
jquery easyui demo 网页下载下来打包了,还有datagrid简要说明
easyUI拓展:获取当前datagrid中在编辑状态的行编号列表,直接使用即可
easyUI datagrid 自动调整行号大小
解决EasyUIdataGrid列比较多,无数据,列展现不全
在easyui 的datagrid编辑状态下实时更新其他处于编辑或者没在编辑下的列值,并在结束编辑后得到的row的数据为更改后的数据。
在easy ui datagrid 列表基础上实现行过滤[行模糊查询],注:数据库远程查询
在Easyui的1.3.3版本中,作者新增了tooltip组件,尽管样式看起来也...之前我写过一篇《扩展:datagrid鼠标经过提示单元格内容》那就是用纯编码生成的tip,更为丑陋,有了Easyui 1.3.3的tooltip,我们实现起来就很容易了
easyui的datagrid生成合并行,合计计算价格!