2015-11-02 120 views
5

在我的網站我使用數據表顯示數據。現在的問題是如果有10條記錄比默認分頁沒有顯示,但是當有超過10條記錄時數據表的分頁應該顯示。在datatable超過10條記錄顯示分頁,否則不顯示分頁使用數據表

這是我的初始化數據表

​​

此數據表中的代碼,當我做服務器端處理: -

var save_method; 
var table; 
    $(document).ready(function() { 
     table = $('#table').DataTable({ 
     oLanguage: { 
     sProcessing: "<img src='<?php echo base_url();?>assets/img/loader.gif'>" 
     }, 
     "processing": true, 
     "serverSide": true,  
     // Load data for the table's content from an Ajax source 
     "ajax": { 
      "url": "<?php echo base_url();?>Technology/technology_list", 
      "type": "POST" 
     }, 

     "columnDefs": [ 
     { 
      "targets": [ -1 ], 
      "orderable": false, 
     }, 
     ], 
     }); 
    }); 
+0

你如何初始化dataTable? Ny標記,AJAX,JSON ...?請顯示一些代碼.... – davidkonrad

+0

我也在服務器端處理數據表。爲此,我粘貼一些數據表的代碼。如果我申請下面的答案它不工作在那 –

+0

這就是爲什麼我問:)有不同的方法來處理不同的情況。那麼'Technology/technology_list'會返回一個JSON?如果我知道更多,我會高興地創建一個例子:聽取'xhr'事件,如果記錄<10,則禁用'#table_filter'和'#table_length',它們想要生成一個示例,但需要知道如何形成AJAX響應。 – davidkonrad

回答

8

使用bPaginate(舊匈牙利符號風格)或paginate對轉分頁或關閉。您可以使用表達式來確定選項:

$('#tbl_member').dataTable({ 
    "bPaginate" : $('#tbl_member tbody tr').length>10, 
    "iDisplayLength": 10, 
    "bAutoWidth": false, 
    "aoColumnDefs": [ 
     {"bSortable": true, "aTargets": [0,2]} 
    ] 
}); 

這適用於1.9.x和1.10.x版本的dataTables。演示示出具有小於10個記錄的一個兩個表,其他的更大量 - >http://jsfiddle.net/t2xcfLap/3/


一個AJAX更新後隱藏分頁控件。假設JSON效應初探是形式

{ 
    "draw": 1, 
    "recordsTotal": 3, 
    "recordsFiltered": 3, 
    "data": [ 
    [...], 
    ] 
} 

然後

table.on('xhr', function(e, settings, json, xhr) { 
    if (json.recordsTotal<10) { 
     $("#example_paginate").hide(); 
     $("#example_length").hide(); 
    } else { 
     $("#example_paginate").show(); 
     $("#example_length").show(); 
    }   
}) 

演示上 - >http://jsfiddle.net/yyo5231z/

注入的控制被命名爲形式<tableId>_length<tableId>_paginate上。所以如果你的餐桌有idtable,那麼上面應該是$("#table_paginate").hide();等等。

與使用靜態表格的第一個答案相比,不同方法的原因是,您無法在不重新初始化表格的情況下即時更改分頁。

+0

得到你的答案非常感謝你.....這是解決我的問題 –