Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
Jquery datatable选中此复选框后,所有行都应转移到新的Jquery datatable_Jquery_Datatables - Fatal编程技术网

Jquery datatable选中此复选框后,所有行都应转移到新的Jquery datatable

Jquery datatable选中此复选框后,所有行都应转移到新的Jquery datatable,jquery,datatables,Jquery,Datatables,我有两个datatable,第一个datatable选中复选框时,行被传输到一个新的jquery datatable。我还有一个chk all复选框,当选中该复选框时,我希望将所有表行传输到另一个datatable 这是两张桌子 var primaryTable = $('#tblProveedorToTransfert').DataTable({ //code that generates datatable }); var secondTable = $

我有两个datatable,第一个datatable选中复选框时,行被传输到一个新的jquery datatable。我还有一个chk all复选框,当选中该复选框时,我希望将所有表行传输到另一个datatable

这是两张桌子

var primaryTable = $('#tblProveedorToTransfert').DataTable({
            //code that generates datatable 
     });

var secondTable = $('#tblProveedorTransferd').DataTable({ 
     //code that generates datatable 
});
这是将所有行传输到另一个表的代码。但是,仅传输可视的行,而不是所有页面上的所有行

        $('#chkAll').click(function (e) {
        $(this).closest('table').find('td input:checkbox').prop('checked', this.checked);
            $('#tblProveedorToTransfert tbody').find('input[type="checkbox"]').each(function () {
                var alereadyAdded = false;

            if ($(this).is(":checked")) {
                for (var i = rowsIDs.length - 1; i >= 0; i--) {
                    if (rowsIDs[i] === $(this).attr("data-id"))
                    {
                        alereadyAdded = true;
                    }
                }
                if (alereadyAdded === false)
                {
                    rowsIDs.push($(this).attr("data-id"));
                }
            }
            else {
                for (var i = rowsIDs.length - 1; i >= 0; i--) {
                    if (rowsIDs[i] === $(this).attr("data-id")) {
                        rowsIDs.splice(i, 1);
                    }
                }
            }
            secondTable.ajax.reload();
            });

    });
我必须在代码中修改什么才能传输所有的行,而不仅仅是可见的行。谢谢你的帮助

  • 在数据源中为表创建另一列,以存储复选框状态(例如:requestTransfer)
  • 每当复选框状态改变时,从步骤1更新新添加的列/字段
  • 呈现复选框时,加载该字段的值,并呈现复选框状态
  • 进行复制时,请检查新添加的列,以查看是否需要复制该行

  • 定义传输…复制到其他表或删除所有数据并将其全部放在其他表中。不管怎样,您的方法需要处理缓存在每个实例中的数据,而不是渲染的数据html@charlietfl已转移:将行复制到其他表。如何像您建议的那样使用每个实例中缓存的数据。插件api具有获取所有数据的方法和添加行的方法。可能还需要一些数组过滤来防止重复。你所要求的不是琐碎的,而是完全可行的。需要将其分解为几个小步骤,并在每个步骤上工作,研究插件文档中的各种方法