从一个jquery Datatable拖动一行并将其拖放到另一个Datatable中

时间:2014-08-27 04:59:39

标签: jquery jquery-ui datatable drag-and-drop

我试图从一个jquery Datatable中拖出一行或一组行,然后将其拖放到另一个Datatable中。

oTable = $("#dragtable").dataTable({
    "aaData": app_emp,
    "bProcessing": true,
    "bDestroy": true,
    "aoColumns": [{
        "mDataProp": "employeeId"
    }, {
        "mDataProp": "empName"
    }]
}).rowReordering();

我从ajax调用获取json并填充数据表如上所述。行重新排序功能正常工作,我可以将行拖放到同一个数据表中

$("#dragtable ").draggable({
    helper: "clone",
});

上面的代码是拖动整个表格,如果我按如下方式修改它:

$(“#dragtable tbody tr”)。draggable({     帮手:“克隆”, });

它只拖动Datatable的标题行而不是正文中的数据行。

我有以下代码将行放到另一个jquery数据表中。

$("#tobedroppedtable tbody tr").droppable({});

由于上述代码无效,我需要有关拖放功能的帮助。

1 个答案:

答案 0 :(得分:0)

试试这可能会有所帮助,但我不确定

oTable // this is the varibale which you have used to initialize data table.

所以我将使用这个变量。

$("oTable.fnGetNodes()").draggable({
     helper: "clone",  
});

我认为问题是,draggable不适用于表的所有行。这是 当您尝试拖动sinlge行时,拖动整个表的原因。试着看看它是否适合你。

首先,这一行:

$(oTable.fnGetNodes()).draggable({

看起来很简单。此行将可拖动功能添加到数据表的所有行。这是关键。如果你使用另一个选择器,比如你认为会起作用的“#tableId tr”,你就会遇到麻烦。这是因为如果您更改表中查看的数据,即通过过滤,则可拖动的功能将在显示的新行上丢失。因此,为了将其应用于表的所有行,必须调用datatables插件提供的函数。