为什么jquery datatable
中的行数(参见下面的代码)未设置为5?它默认等于10 8as)。为什么'iDisplayLength': 5
在这里不起作用?
<script>
function loadData() {
$.getJSON(
'modules/getData.php',
function(data) {
var oTable = $('#newspaper-b').dataTable({
"sPaginationType":"full_numbers",
"aaSorting":[[3, "asc"]],
"bJQueryUI":true,
'iDisplayLength': 5,
'bLengthChange': false
});
oTable.fnDraw();
var list = data.flights;
var textToInsert = '';
for (var i = 0; i < list.length; i++) {
aux = list[i];
textToInsert += '<tr><td>';
textToInsert += aux.Var1;
textToInsert += '</td> </tr>' ;
}
$('table#newspaper-b tbody').html(textToInsert);
}
);
}
</script>
答案 0 :(得分:14)
尝试这样的事情。 DataTables具有内置选项,可让您从AJAX源中提取数据,而无需自行构建。 Read the documentation并根据需要进行自定义:
function loadData() {
var oTable = $('#newspaper-b').dataTable({
"sAjaxSource": 'modules/getData.php',
"sPaginationType": "full_numbers",
"aaSorting": [
[3, "asc"]
],
"bJQueryUI": true,
'iDisplayLength': 5,
'bLengthChange': false
});
};
要在加载数据后以某种方式修改表格,您需要添加fnDrawCallback
选项:
"fnDrawCallback": function( oSettings ) {
// use jQuery to alter the content of certain cells
$lastcell = $('#newspaper-b').find('tr').find('td:last');
// manipulate it somehow
}
答案 1 :(得分:6)
你可以尝试
$('#example').dataTable( {
"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
} );
答案 2 :(得分:4)
此外,如果您之前一直在运行/测试"bStateSave": true
且iDisplayLength
未指定/默认值,则iDisplayLength
的已保存默认值将覆盖任何后续指定的尝试一个新值,你仍然会得到10行。尝试清空缓存,设置"bStateSave": false
,指定所需的iDisplayLength
,然后重新运行。
答案 3 :(得分:3)
检查此链接,您可能会发现它很有用:
答案 4 :(得分:1)
这绝对是我找到的最简单方法:
var oTable;
$(document).ready(function() {
$('.some-button').click( function () {
var oSettings = oTable.fnSettings();
oSettings._iDisplayLength = 50;
oTable.fnDraw();
});
oTable = $('#example').dataTable();
});