Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从jqgrid中删除拖放的行_Javascript_Jquery_Jqgrid - Fatal编程技术网

Javascript 从jqgrid中删除拖放的行

Javascript 从jqgrid中删除拖放的行,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我有两个jqgrids设置,可以从“主”网格拖动到“目标”网格。我放入“目标”网格的行未保存到数据库中,并且具有一个生成的唯一ID,前缀为new。我有一个自定义的寻呼机按钮,可以删除选定的行。对于保存的行,事件将从数据库中删除该项并重新加载网格。这个很好用。但是,当我要删除未保存到DB的拖动行时,该行不会被删除 这是我的按钮功能: onClickButton: function () { var deleteId = tgtGrid.getRowData(tgtG

我有两个jqgrids设置,可以从“主”网格拖动到“目标”网格。我放入“目标”网格的行未保存到数据库中,并且具有一个生成的唯一ID,前缀为new。我有一个自定义的寻呼机按钮,可以删除选定的行。对于保存的行,事件将从数据库中删除该项并重新加载网格。这个很好用。但是,当我要删除未保存到DB的拖动行时,该行不会被删除

这是我的按钮功能:

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);