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

未定义

我有一个带有jQuery DataTables的表,并希望允许手动对行进行重新排序。因此,我使用的是jQuery插件,可在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();

这是完整的源代码

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

我正在使用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/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章