DataTables v1.10按隐藏列排序

时间:2015-05-29 20:53:42

标签: datatables-1.10

通过隐藏列停止工作迁移到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()等,但它不起作用。

欢迎任何想法和建议。

1 个答案:

答案 0 :(得分:0)

我认为initComlete是更改DataTables行为的正确位置,至少对于1.10。来自manual

  

DataTables将每个表的配置和数据存储在a中   设置对象。该对象的结构被认为是   私有的DataTables API和读取或写入   不支持对象中的值。 属性名称和值   对象中包含的内容可以,将会在版本之间进行更改!

如果您正在使用DataTables 1.10,则应使用columns.orderDatacolumnDefs.orderData进行定义,请参阅以下示例:

var dataTableInfo = $("#dataTable1").DataTable({   
   "columnDefs": [
      { "orderData": 1, "targets": [ 0 ] }
   ]        
});

请参阅this JSFiddle进行演示。