通过隐藏列停止工作迁移到v1.10排序后。
小提琴手的例子 V1.10 http://jsfiddle.net/0rstgd4f/
var dataTableInfo = $("#dataTable1").DataTable(
{
"initComplete": function(settings, json)
{
settings.aoColumns[0].iDataSort = 1;
}
});
<table id="dataTable1">
<thead>
<tr>
<th>
Column1
</th>
<th style="display:none;">
Column2
</th>
<th>
Column3
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
1
</td>
<td style="display:none;">
1
</td>
<td>
a
</td>
</tr>
<tr>
<td>
2
</td>
<td style="display:none;">
2
</td>
<td>
b
</td>
</tr>
<tr>
<td>
3
</td>
<td style="display:none;">
1
</td>
<td>
c
</td>
</tr>
</tbody>
</table>
v.1.8.2 http://jsfiddle.net/rzzrbwb0/
列应排序为: 1 3 2
或 2 1 3
我尝试将initComplete的新定义用作columns(),column()等,但它不起作用。
欢迎任何想法和建议。
答案 0 :(得分:0)
我认为initComlete
是更改DataTables行为的正确位置,至少对于1.10。来自manual:
DataTables将每个表的配置和数据存储在a中 设置对象。该对象的结构被认为是 私有的DataTables API和读取或写入 不支持对象中的值。 属性名称和值 对象中包含的内容可以,将会在版本之间进行更改!
如果您正在使用DataTables 1.10,则应使用columns.orderData或columnDefs.orderData进行定义,请参阅以下示例:
var dataTableInfo = $("#dataTable1").DataTable({
"columnDefs": [
{ "orderData": 1, "targets": [ 0 ] }
]
});
请参阅this JSFiddle进行演示。