dataTable 從服務器獲取數據源的兩種表現形式


 1 var table = $('#example1').DataTable({
 2         "processing": true,//加載效果
 3         "autoWidth": false,
 4        "iDisplayLength": 25,//設置每頁要顯示的條數
 5         "lengthMenu": [[25, 50, 100], [25, 50, 100]],//設置每頁顯示條數的下來列表
 6          "serverSide": true,//從服務器調取數據源時設置為true
 7          "ajax":{
 8               "url":接口地址',
 9               "data":function(b){//傳參以此作為搜索條件
10                       b.taskId=$("#tId").val();
11                      b.state=$("#state").val();
12                   //    alert(b.positionId);
13                   },
14                "beforeSend":function(xhr){//加載loading
15                   var index = layer.load(1, {
16                       shade: [0.5,'#000'] //0.5透明度的黑色背景
17                     });
18               },
19               
20                "complete":function(xhr){//加載完成之后關閉loading
21                             layer.closeAll('loading');
22                         layer.msg('加載完成');
23                        
24                    }
25           },
26           "columns": [// columns 用來配置具體列的屬性
27               {"data":"aid","bSearchable":false,"visible":false},
28             {"data":  function ( row, type, set ) {//屬性方法可以自定義顯示方式
29                 return  "<a href='apkUpdate.html?aid=" + row.aid + "'>"+row.customName+"</a>";        
30             },"bSearchable":true},
31             {"data": "advertisersName","bSearchable":false},
32             {"data": "taskName","bSearchable":true},
33             {"data": function ( row, type, set ) {
34                 return "<a target=\"_blank\" href='apkIncomeList.html?aid=" + row.aid + "'> <span class=\"glyphicon glyphicon-usd\"></span></a>";    
35                 
36             },"bSearchable":true},
37             {"data": "limited","bSearchable":false},
38             {"data": function ( row, type, set ) {
39                 //處理時間戳
40                 return $.myTime.UnixToDate(row.startDate);          
41                     
42             } ,"bSearchable":false},
43             {"data": function ( row, type, set ) {
44                 //處理時間戳
45                 return $.myTime.UnixToDate(row.endDate); 
46                     
47             } ,"bSearchable":false},
48             {"data": "startTime","bSearchable":false},
49             {"data": "endTime","bSearchable":false},
50             {"data": function ( row, type, set ) {
51                 if(row.state==1){
52                     return "開";
53                 }else if(row.state==2){
54                     return "關";    
55                 }else{
56                     return "臨時";
57                     };
58                       
59                     
60             } ,"bSearchable":false},
61             {"data": function ( row, type, set ) {
62                     return "<a href=\""+row.apkUrl+"\" title=\""+row.apkUrl+"\"><span class=\"glyphicon glyphicon-download-alt\"></span></a>";
63                 } ,"bSearchable":false}
64           ],
65           "columnDefs": [//自定義列 columnDef s 屬性
66                  {
67                      "targets": [0,1,2,3,4,5,6,7,8,9,10,11],
68                        "orderable":false
69                    },
70                 
71             {
72               "targets": [12],
73               "data":"aid",
74               "render": function(data, type, full) {
75                 return "<a href='apkUpdate.html?aid=" + data + "'>修改</a>";
76               }
77             }
78           ],
79           "language": {//設置顯示的內容
80               'sSearch': '數據篩選:', 
81                  "lengthMenu": "每頁顯示 _MENU_ 項記錄",
82                 "zeroRecords": "沒有符合項件的數據...",
83                 "info": "當前頁數 _PAGE_ ,共有 _PAGES_頁",
84                 "infoEmpty": "顯示 0 至 0 共 0 項",
85                  "infoFiltered": ""
86         },
87         //在 dom 里面不配置 f ,可以隱藏掉默認的搜索框
88           "dom": '<"datatable-header"<"dataTables_filter">l><"datatable-scroll"t><"datatable-footer"ip>'
89           
90         });
91      $.fn.dataTable.ext.errMode = 'throw';//當出現問題時不彈出
92  
93 $('#apkBtn').bind('click',//自定義搜索框在按下回車鍵時搜索數據
94             function(e) {
95                 var pos=$("#apkInput").val();
96                 table.search(pos).draw();//搜索
97             });  


 通過ajax先加載數據之后初始化dataTable,與上面的區別就是,后初始化dataTable,排序和搜索都是客戶端處理。當然分頁需要自己寫了。

 1  $.ajax({
 2         url:"url",
 3         type: "GET",
 4         success: function(ret) {
 5           if (ret.CODE == "201") {
 6            var channelTaskLogModels = ret.data;
 7              
 8            for (var i = 0; i < channelTaskLogModels.length; i++) {
 9             $("#example1").append("<tr><td>" + channelTaskLogModels[i].appName + "</td><td>" + channelTaskLogModels[i].points + "</td><td>" + $.myTime.UnixToDate(channelTaskLogModels[i].createTime) + "</td><td><span class='channel'>" + channelTaskLogModels[i].address + "</span></td></tr>");
10           }
11  $('#example1').dataTable({ 12 "iDisplayLength": 25, 13 "lengthMenu": [[25, 50, 100], [25, 50, 100]], 14 "paging":false, 15 "language": { 16 'sSearch': '數據篩選:', 17 "lengthMenu": "每頁顯示 _MENU_ 項記錄", 18 "zeroRecords": "沒有符合項件的數據...", 19 "info": "當前頁數 _PAGE_ ,共有 _PAGES_頁", 20 "infoEmpty": "顯示 0 至 0 共 0 項", 21 "infoFiltered": "111" 22 }, 23 }); 24             }
25         },
26         error: function(xhr, status, msg) {
27           layer.msg('玩命加載中..');
28         }
29       });

 


免責聲明!

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



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