在数据表中,超过10条记录显示分页,否则不使用数据表显示分页

时间:2015-11-02 13:21:38

标签: datatables

在我的网站中,我使用数据表来显示数据。现在的问题是如果有10条记录而不显示默认分页,但是当记录超过10条时,应显示数据表的分页。

这是我初始化数据表

的方法
$(document).ready(function(){
        $('#tbl_member').dataTable({
            "iDisplayLength": 10,
            "bAutoWidth": false,
            "aoColumnDefs": [
                {"bSortable": true, "aTargets": [0,2]}
            ]
        });
});

这个数据表代码是在我完成服务器端处理时: -

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

1 个答案:

答案 0 :(得分:9)

使用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个,另一个表示更多 - &gt;的 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();
    }        
})

演示 - &gt;的 http://jsfiddle.net/yyo5231z/

注入的控件在<tableId>_length<tableId>_paginate表单上命名。因此,如果您的表格中包含id table,则上述内容应为$("#table_paginate").hide();,依此类推。

与使用静态表的第一个答案相比,采用不同方法的原因是,如果不重新初始化表,则无法动态更改分页。