jquery - DataTables (jQuery) 中的行重新排序后排序不起作用

标签 jquery datatables

我有一个带有 jQ​​uery DataTables 的表,并且希望允许手动行重新排序。因此我使用 a jQuery plugin that enables row reordering in DataTables .

问题是,通过启用行重新排序,我无法再对表进行排序。 rowreordering-plugin 的程序员已经明确表示这就是插件的工作原理,请参阅此处的讨论:https://code.google.com/p/jquery-datatables-row-reordering/issues/detail?id=1

现在我想在手动重新排序后启用排序,同样在排序后重新排序。如果排序破坏了手动顺序并“颠倒”了它,那也不是问题。

我想这是插件源代码中最相关的部分:

    return this.each(function () {

        var oTable = $(this).dataTable();

        var aaSortingFixed = (oTable.fnSettings().aaSortingFixed == null ? new Array() : oTable.fnSettings().aaSortingFixed);
        aaSortingFixed.push([properties.iIndexColumn, "asc"]);

        oTable.fnSettings().aaSortingFixed = aaSortingFixed;


        for (var i = 0; i < oTable.fnSettings().aoColumns.length; i++) {
            oTable.fnSettings().aoColumns[i].bSortable = false;
            /*for(var j=0; j<aaSortingFixed.length; j++)
            {
            if( i == aaSortingFixed[j][0] )
            oTable.fnSettings().aoColumns[i].bSortable = false;
            }*/
        }
        oTable.fnDraw();

Here is the complete source code .

通过在 for 循环中将 aoColumns[i].bSortable 设置为“true”,可以在表中启用排序,但如果单击列则没有任何效果。我正在寻找如何解决此问题的想法。 issue discussion 的最后一个条目说了一些有希望的事情,但它似乎对我不起作用。

我正在使用 DataTables 1.9.0 和 jQuery 1.7.1,因为该插件不适用于 Datatables 1.10 或 jQuery 2。

最佳答案

使用 dataTables 1.10.x 和新的“原生”RowReorder插入。将以下文件包含到您的项目中:

<script src="https://cdn.datatables.net/rowreorder/1.0.0/js/dataTables.rowReorder.min.js"></script>
<link href="https://cdn.datatables.net/rowreorder/1.0.0/css/rowReorder.dataTables.min.css" type="text/css" rel="stylesheet">
$('#example').DataTable( {
    rowReorder: true
});

此处演示 -> http://jsfiddle.net/0f9Ljfjr/

关于jquery - DataTables (jQuery) 中的行重新排序后排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32698890/

相关文章:

javascript - jqueryUi 自动完成 - 自定义数据和显示

javascript - JS : datatables printing and exporting excel

javascript - 如何使用 jQuery 和 dataTables 进行数字排序?

r - 将可编辑 DT 与 `add row` 功能相结合

javascript - datatable.columns().search().draw() 在服务器端 php 中请求或发布什么?

javascript - Jquery倒计时但如果页面刷新/F5仍然保留计时器

jquery - AngularJS UI datePicker 总是休息一天

Jquery - 附加 ajax 接收到的内容以及预加载器

jquery - Bootstrap Datetimepicker - 禁用几十年 View 模式

javascript - DataTables 动态显示开始