1. 程式人生 > >datatables分頁,排序,ajax請求等引數設定

datatables分頁,排序,ajax請求等引數設定

1.引入必要的css和js

 <link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
 <script src="js/jquery.js"></script>
 <script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>

2.html結構

<table id="example" class="display" cellspacing="0" width="100%">
       <thead>
       <tr>
           <th>Name</th>
           <th>Position</th>
           <th>Office</th>
           <th>Age</th>
           <th>Start date</th>
           <th>Salary</th>
       </tr>
       </thead>
       <tbody>
       <tr>
           <td>Tiger Nixon</td>
           <td>System Architect</td>
           <td>Edinburgh</td>
           <td>61</td>
           <td>2011/04/25</td>
           <td>$320.800,00</td>
       </tr>
       <tr>
           <td>Donna Snider</td>
           <td>Customer Support</td>
           <td>New York</td>
           <td>27</td>
           <td>2011/01/25</td>
           <td>$112.000,00</td>
       </tr>
       </tbody>
   </table>

3.js中只需呼叫Datatable()方法即可

  $("#example").DataTable();

效果展示


***注意***

Datatable()中只有一個引數即為物件,可更改表格預設設定 格式為Datatable({'屬性1:'值1','屬性2:'值2'....})

#####引數說明#####

一:常規配置引數

info 控制總數資訊(右下角顯示總數和過濾條件)的顯示 ,預設true

order:[[引數1,'引數2']]  引數1為某一列的索引值(0開始),引數2值為desc,asc //指定某一列為降序或者升序

paging 是否有分頁功能,預設true

lengthChange

是否顯示分頁下拉列表,預設true

ordering:是否排序,預設true

searching:是否有搜尋功能,預設true

pagingType:值有number,simple,simple_numbers等

language:{

 zeroRecords:'抱歉,沒有檢索到資料',

 search:'xx',  // 將英文search改為中文

 searchPlaceholder:'請輸入',//搜尋框提示功能

 lengthMenu:'每頁顯示_MENU_條記錄',

 info:'顯示第_START_到第_END_條記錄,共_TOTAL_條',

 paginate:{'next':'下頁','previous':'下頁','first':'第一頁','last':'最後一頁'},

 infoEmpty:'沒有資料',

 infoFiltered:"(從_MAX_條資料檢索)",

    }  //中文顯示

二:ajax資料請求引數

ajax:{"url": "", 請求地址
    "type": "",請求的方式
    "data": {},請求時傳遞到伺服器的引數
    "dataType": "",返回型別,有json,text,jsonp,xml等格式

    "dataSrc":function(data){

return data.xx //獲取伺服器返回的資料

}

    }

columns:[{'data':'值1'},{"data":"值2","render":function(data,type,full){return xx //此方法中的引數data指的是json檔案中值2所對應的值}},{"data":null,"render":function(data,type,full){return 值1 //該值1將被顯示在表上,此方法中的引數data指的是整個json檔案中的資料}

  ]

columnDefs:[{'targets':[3],'visiblie':'true','searchable':false}]

值1,值2為json檔案中data屬性對應的值(陣列)中多個物件的屬性名(一一對應)

值1也可為null,代表不顯示

值2後的render對應的方法代表可對獲取的資料進行進一步處理

注意:columns和columnDefs的區別

   columns中的個數必須與表中列的個數一致

 columnDefs可對某一列進行處理 例如columnDefs:[{'targets':[3],'visiblie':true,'searchable':false,'sortable':false}]  //使表格第四列不顯示不可搜尋不可排序

舉個例子大笑

 以下檔案是ajax請求的檔案 "data/objects.txt"

{"data": [ { "name""Tiger Nixon", "position""System Architect", "salary""$320,800", "start_date""2011/04/25", "office""Edinburgh", "extn""5421" }] } 則要是表能顯示請求的資料則"data/objects.txt"中的屬性名應該與columns中的data的屬性值一致 "columns": [ "data""name" }, "data""position" }, "data""office" }, "data""extn" }, "data""start_date" }, "data""salary" } ] 3.不進行ajax請求時的引數 data:[[行1值,行1值],[行2值,行2值]] //傳入表中的每一行資料
columns:[{'title','標題1'}] //設定表的標題 則HTML結構僅寫一個空的div即可

####操作表####

let table=$("#example").Datatable()

  1.操作行

table.data() 或 table.rows().data() 獲取表中的資料 ,可使用.toArray()做進一步處理

table.row.add([值1,值2,值3]).draw()   向表中新增一行資料新增資料後需要重繪\

table.rows().remove().draw() 刪除所有行

table.rows(selector).remove().draw()根據選擇器刪除指定行

table.row(xx).remove().draw()//通常用於點選該行按鈕刪除該行

    2.操作列

table.column(index).data() index是0開始的某一列索引//獲取某一列的資料

table.columns('selector').data() //根據選擇器獲取列的資料

 3.單元格

table.cell(num1,num2).data()獲取某一單元格的值

table.cell(num1,num2).data(值).draw() //設定某一單元格的值 並重繪使正常顯示