Javascript 从jqgrid中删除拖放的行
我有两个jqgrids设置,可以从“主”网格拖动到“目标”网格。我放入“目标”网格的行未保存到数据库中,并且具有一个生成的唯一ID,前缀为new。我有一个自定义的寻呼机按钮,可以删除选定的行。对于保存的行,事件将从数据库中删除该项并重新加载网格。这个很好用。但是,当我要删除未保存到DB的拖动行时,该行不会被删除 这是我的按钮功能:Javascript 从jqgrid中删除拖放的行,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我有两个jqgrids设置,可以从“主”网格拖动到“目标”网格。我放入“目标”网格的行未保存到数据库中,并且具有一个生成的唯一ID,前缀为new。我有一个自定义的寻呼机按钮,可以删除选定的行。对于保存的行,事件将从数据库中删除该项并重新加载网格。这个很好用。但是,当我要删除未保存到DB的拖动行时,该行不会被删除 这是我的按钮功能: onClickButton: function () { var deleteId = tgtGrid.getRowData(tgtG
onClickButton: function () {
var deleteId = tgtGrid.getRowData(tgtGrid.getGridParam('selrow'))['ID'];
if (!deleteId) {
return false;
}
// remove an added row, not saved in DB
if (deleteId.indexOf('new_') != -1) {
tgtGrid.jqGrid('delRowData', deleteId);
} else {
// remove account saved in DB
$.post( url, { id: deleteId }, function (responseData) {
if (!responseData.success) {
// error here
} else {
// success here
tgtGrid.trigger('reloadGrid');
}
});
}
}
如果我将按钮设置为在保存的行tgtGrid.jqGrid'delRowData'上使用'delRowData',deleteId;它返回true,并按预期从网格中删除该行,而不是从数据库中删除该行
如何删除删除的行?我发现问题在于jqgrid以及它如何查找要删除的元素。tgtGrid.getRowDatapager.getGridParam'selrow'['ID']将返回您在列模型中设置为键的ID或列。但是,jqgrid查看元素的ID以删除行,而这与删除的行不匹配。对于从DB加载的数据,包含ID/键的元素将有一个匹配的ID属性作为封闭元素。对于删除的行,元素是您所期望的,但是封闭元素有一个生成的id属性,其值为dnd_u,其中是一些生成的随机数。因此,您需要获取此id以删除尚未保存到数据源的拖放行。下面是我提出的解决方案
var trId = $('td[title="' + deleteId + '"]').closest('tr').attr('id');
tgtGrid.jqGrid('delRowData', trId);