2015-11-02 124 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

得到你的答案非常感谢你.....这是解决我的问题 –