DataTable插件:正确排序列

时间:2015-10-05 17:42:14

标签: javascript jquery datatable

我使用DataTable插件进行实施。因为我希望第一个位置的列,其值在获取的json中的另一个位置,我尝试使用colReorder扩展名。该扩展的集成工作正常("colReorder":true),但是当我尝试在初始化时更改列的位置时,订购过程不起作用。
这是我的代码(我把它放在插件的fnInitComplete方法中)

fnInitComplete:function( oSettings ) {
      var colReorder = new $.fn.dataTable.ColReorder(table);
      var newOrder = [];
      newOrder.push(namePosition);
      for(var k=0;k<length;k++){
        if(k!=namePosition){
        newOrder.push(k);
        }
      }
      colReorder.fnOrder(newOrder);

我尝试了该代码的其他选项和位置,但我无法使reOrder正常工作。如果我记录newOrder变量,则会显示正确的订单[7,0,1,2,3,4,5,6,8,9,10]

我在这里做错了什么?

1 个答案:

答案 0 :(得分:-1)

您链接的扩展程序允许用户通过拖放重新排序列。如果您只想设置不同的固定订单,可以使用columns.data选项进行设置。它允许多种方式来选择每列中的数据。例如,如果设置整数,则会在该索引处呈现行数据:

$(document).ready(function() {
    $('#example').DataTable( {
        data: dataSet,
        columns: [
            { title: "Position", data: 1 }, // Use data at row[1]
            { title: "Name", data: 0 }, // Use data at row[0]
            { title: "Office" },
            { title: "Extn." },
            { title: "Start date" },
            { title: "Salary" }
        ]
    } );
} );

以下是一个有效的例子:https://jsfiddle.net/k5afdb8s/

已编辑添加:

如果您确实想要使用扩展程序,可以使用colReorder.order初始化参数,如文档中的示例所示:

$('#example').DataTable( {
    colReorder: {
        order: newOrder
    }
} );