datatable是一個jQuery擴展的表格插件。其提供了強大的表格功能。
官方地址:http://www.datatables.NET/
DataTable提供的表格樣式里面,第一行都是會有排序功能的,但是如果遇到我們想將第一列設置為chexkbox,那也就是說這一列我們不需要排序,如下圖:

在官方示例中,對於表格的是否可排序是在初始化中設置的一個值來決定的
1 $(".datatable-simplified").dataTable( { 2 "bSort": false 3 });
如果要在初始化時就指定默認以哪一列來排序則
1 $(document).ready(function() { 2 $('#example').dataTable( { 3 "aaSorting": [[ 4, "desc" ]] 4 } ); 5 } );
這會在頁面加載時初始化表格,並以序號為4也就是第5列進行降序排列
不過,這種設置只能是對表頭的所有列一起進行設置。要么全都可排序,要么全都不可排序。
現有一需求,第一列為checkbox,要其不可排序,其余列均可排序
經過研究后,發現有一配置可解決該問題。在初始化時設置以下值
1 $(".datatable").dataTable( { 2 "aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] }] 3 });
該值的含義為。初始化datatable,但對序號為0列的列不進行排序,別的列均可進行排序
但是,改完之后會發現,頁面一加載之后,第一列總是會有排序的箭頭,如圖:

是因為插件本身設定在頁面加載進去之后以第一列為開始做排序,也就是第0列
所以我們還需要再加段代碼:
1 $('#DataTable').DataTable({ 2 paging: true, //表格分頁,默認是true 3 "language": { 4 "lengthMenu": "每頁 _MENU_ 條記錄", 5 "zeroRecords": "沒有找到記錄", 6 "info": "第 _PAGE_ 頁 ( 總共 _PAGES_ 頁 )", 7 "infoEmpty": "無記錄", 8 "infoFiltered": "(從 _MAX_ 條記錄過濾)",9 }, 10 "aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] }], 11 "aaSorting": [[1, "asc"]] 12 13});
這樣就可以解決問題,使程序本身從第一列開始排序。
