更改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": true
且iDisplayLength
未指定/默认值,则"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(); });