更改jQuery数据表中显示的行数

为什么jquery datatable的行数(请参阅下面的代码)未设置为5? 它默认等于10 8as)。 为什么'iDisplayLength': 5在这里不起作用?

  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 += ''; textToInsert += aux.Var1; textToInsert += ' ' ; } $('table#newspaper-b tbody').html(textToInsert); } ); }  

尝试这样的事情。 DataTables具有内置选项,可让您从AJAX源中提取数据,而无需自行构建。 阅读文档并根据需要进行自定义:

 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 } 

你可以试试

 $('#example').dataTable( { "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] } ); 

此外,如果您以前使用"bStateSave": true运行/测试"bStateSave": trueiDisplayLength未指定/默认值,则"bStateSave": true的保存默认值将覆盖任何后续尝试指定新值,您仍将获得10行。 尝试清空缓存,设置"bStateSave": false ,指定所需的"bStateSave": false ,然后再次运行。

检查此链接,您可能会发现它很有用:

动态更改iDisplayLength

这是我发现的最简单的方法:

 var oTable; $(document).ready(function() { $('.some-button').click( function () { var oSettings = oTable.fnSettings(); oSettings._iDisplayLength = 50; oTable.fnDraw(); }); oTable = $('#example').dataTable(); });