我使用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]
。
我在这里做错了什么?
答案 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
}
} );