在我的网站中,我使用数据表来显示数据。现在的问题是如果有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,
},
],
});
});
答案 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();
,依此类推。
与使用静态表的第一个答案相比,采用不同方法的原因是,如果不重新初始化表,则无法动态更改分页。