jquery的数据表默认sorting
我想设置默认sorting到我的jquery数据表中的第二列。 它默认按索引0sorting。我使用"aaSorting": [[ 1, "asc" ]]
语法,但它强调我不想在初始加载的列。 如何设置特定列的默认sorting,而不突出显示列,就像没有涉及sorting并且使用0索引列一样。
有几个选项:
-
在初始化DataTables之后,删除TBODY中TD元素的sorting类。
-
使用http://datatables.net/ref#bSortClasses禁用sorting类。; 与此问题是,它将禁用用户sorting请求的sorting类 – 这可能会或可能不是你想要的。
-
让您的服务器以您所需的sorting顺序输出表格,并且不要在表格上应用默认sorting(
aaSorting:[]
)。
这是它的实际代码…
$(document).ready(function() { var oTable = $('#myTable').dataTable(); // Sort immediately with column 2 (at position 1 in the array (base 0). More could be sorted with additional array elements oTable.fnSort( [ [1,'asc'] ] ); // And to sort another column descending (at position 2 in the array (base 0). oTable.fnSort( [ [2,'desc'] ] ); } );
为了不让列突出显示,请像这样修改CSS:
table.dataTable tr.odd td.sorting_1 { background-color: transparent; } table.dataTable tr.even td.sorting_1 { background-color: transparent; }
你可以使用fnSort函数,在这里查看细节:
最好的select是禁用sorting,只需按照期望的sorting顺序(从数据库或其他来源)提供数据。 尝试添加到你的'数据表':“bSort”:false
Datatables支持HTML5 data- *属性的这个function。
它支持sorting顺序中的多个列(基于0)
<table data-order="[[ 1, 'desc' ], [2, 'asc' ]]"> <thead> <tr> <td>First</td> <td>Another column</td> <td>A third</td> </tr> </thead> <tbody> <tr> <td>z</td> <td>1</td> <td>$%^&*</td> </tr> <tr> <td>y</td> <td>2</td> <td>*$%^&</td> </tr> </tbody> </table>
现在我的jQuery只是$('table').DataTables();
我得到我的第二和第三列以desc / asc顺序sorting。
下面是我发现自己重复使用的<table>
的一些其他好的属性:
data-page-length="-1"
将页面长度设置为全部(对于页面长度25,通过25)…
data-fixed-header="true"
…猜一猜
我也有这个问题。 我曾经使用stateSave
选项,并造成这个问题。
删除这个选项,问题就解决了。
使用它对我有用:“order”:[[1,“ASC”]],
这对我工作:
jQuery('#tblPaging').dataTable({ "sort": true, "pageLength": 20 });
只需包含以下代码:
$(document).ready(function() { $('#tableID').DataTable( { "order": [[ 3, "desc" ]] } ); } );
充分参考文章与例子:
https://datatables.net/examples/basic_init/table_sorting.html