2015-10-05 57 views
0

我为我的实现使用了DataTable插件。因为我想在第一个位置的列中,其值在获得的json的另一个位置,所以我尝试使用colReorder扩展名。该扩展的集成工作正常("colReorder":true),但是当我尝试在初始化时更改列的位置时,排序过程不起作用。
这是我的代码(我已经把它在插件的fnInitComplete方法)DataTable插件:正确排列列

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); 

我试过代码的另一个选项和位置,但我不能让重新排序工作。如果我的日志newOrder变量显示正确的顺序[7,0,1,2,3,4,5,6,8,9,10]

我在这里做错了什么?

回答

-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 
    } 
}); 
+0

谢谢你的回答!不幸的是在我的情况下,这有点复杂,因为我有一个动态的列和数据生成,我不想使用从我的JSON获得的数据的顺序。 – user2550641