DataTable插件指定某列不可排序


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});

這樣就可以解決問題,使程序本身從第一列開始排序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM