在datagrid中直接将index传给easyui自带的deletRow方法来删除当前点击行,一开始并没有问题,但是当连续删除的时候就或出问题了。
原因是datagrid行是根据datagrid-row-index和datagrid-row-r1-x-x来定位行的,如果一开始就将该行的index作为参数传给deleteRow方法,每行的index是固定了的,其他行的index并不会随着删除某一行而改变掉。所以在连续删除中,可能会出现,当删除了一行以后,点击了第二行的删除按钮,删除的确实第三行这种情况。
最近我也是找了一些解决办法,但都稍有复杂,唯有这个解决办法最近单,和大家一起分享:
html:
<table id="dg" class="easyui-datagrid" title=""></table>
JS:
1 $(function() { 2 $(‘#dg‘).datagrid().datagrid(‘enableCellEditing‘);//首行复选框 3 4 $(‘#dg‘).datagrid({ 5 rownumbers: true, 6 multipleSelect:true, 7 collapsible: false, 8 pagination: true, 9 url: ‘datagrid/dg.json‘, 10 method: ‘get‘, 11 columns: [ 12 [{ 13 field: ‘ck‘, 14 checkbox: true 15 }, { 16 field: ‘name‘, 17 title: ‘姓名‘ 18 }, { 19 field: ‘tel‘, 20 title: ‘手机号码‘ 21 }, { 22 field: ‘operate‘, 23 title: ‘操作‘, 24 formatter: function(val, row, index) {return ‘<button href="#" onclick="deleteRow(this)"></button>‘; 25 } 26 }] 27 ] 28 }) 29 }); 30 31 32 33 function getRowIndex(target) { 34 var tr = $(target).closest(‘tr.datagrid-row‘);35 36 return parseInt(tr.attr(‘datagrid-row-index‘)); 37 } 38 39 function deleteRow(target) { 40 alert(getRowIndex(target)); 41 $(‘#membershipCardData1‘).datagrid(‘deleteRow‘, getRowIndex(target)); 42 }
转载地址:https://www.cnblogs.com/MinhongShen/p/7551717.html
原文地址:https://www.cnblogs.com/Dumb-dog/p/11539830.html
时间: 2024-10-10 22:31:56