87,910
社区成员
发帖
与我相关
我的任务
分享
var ids = [];
var index = [];
var rows = $('#table').datagrid('getSelections');
for (var i = 0; i < rows.length; i++) {
ids.push(rows[i].product_id);
index.push($('#table').datagrid('getRowIndex', rows[i]));
}
for (var i = 0; i < index.length; i++) {
$('#table').datagrid('deleteRow', index[i]-i);
}
// 删除 委印单明细
$btnGeneralEditRemoveDetail.bind('click', function ()
{
// 1、如果有正在编辑的行,则需取消编辑
if (editIndexBook != undefined)
{
$generalEditDatagrid.datagrid('cancelEdit', editIndexBook);
}
// 2、获取已勾选的行
var allCheckedRows = $generalEditDatagrid.datagrid('getChecked');
console.info(allCheckedRows.length);
console.info(allCheckedRows);
// 3、对已勾选的行进行遍历删除
if (allCheckedRows.length > 0)
{
var checkedRowLength = allCheckedRows.length;
for (var i = 0; i < checkedRowLength; i++)
{
var checkedRow = allCheckedRows[0];
var checkedRowIndex = $generalEditDatagrid.datagrid('getRowIndex', checkedRow);
$generalEditDatagrid.datagrid('deleteRow', checkedRowIndex);
}
}
});
说明:
一、对于 第1点 中的变量 editIndexBook,大家可以忽略,或者把这一小段代码去除。
二、第2点没啥好说的,直接讲第3点哈,一定要把“已勾选项的个数放到一个中间变量”,即 checkedRowLength,因为在逐个删除过程中,allCheckedRows.length 会逐个自动减 1,JavaScript 的数组就是这样灵活;
三、删除项永远是“下标为 0 的那一项”,即 allCheckedRows[0],不可以写成 allCheckedRows[i],所以我的这段 for() 循环其实可以改写成 while() ,不管如何请务必注意以上几点。
while (true) {
var rows = dg.datagrid('getChecked');
if (rows.length >= 1) {
dg.datagrid('deleteRow', dg.datagrid('getRowIndex', rows[0]));
edit_rows_length -= 1;
} else {
return false;
}
}
$('#t1').datagrid('deleteRow', rowIndex);
var rows = $('#t1').datagrid("getRows");
$('#t1').datagrid("loadData", rows);