以编程方式更改DataTables的DisplayLength

时间:2013-12-20 16:36:18

标签: javascript jquery-ui datatables jquery-datatables

我一直在使用dataTables一段时间,它是一个可靠的工具。可以选择设置初始显示长度iDisplayLength。我希望在表初始化后以编程方式更改显示长度。

我的自定义数据表小部件位于模态中。当我调整模态的大小时,我调整了数据表的大小。我还想在相同的resize函数中调整显示长度。

resize: function( event, ui ) { 
  $('.dataTables_scroll').css('height', magicRation * $('#modal').height() );
  $('.dataTables_scrollBody').css('height', $('.dataTables_scroll').height() - 91 );
},
var displayLength = Math.floor($('.dataTables_scrollBody').outerHeight() / $('#DataTables_Table_0 > tbody  td').first().outerHeight());

1 个答案:

答案 0 :(得分:4)

我认为没有一种“公共API”方法可以做到这一点。虽然我过去曾经使用过,但仍有一种解决方法。它适用于DataTables 1.9.4 ...不确定任何其他版本

var table = $('#table').dataTable();
table.fnSettings()._iDisplayLength = displayLength; //variable from your question
table.fnDraw(); //redraws the table

免责声明:我不确定这可能会对内部产生什么影响...我通常会回避手动设置下划线前缀变量,因为作者可能不打算开发人员访问那些没有API的人,但我没有遇到任何副作用......里程可能会有所不同等等。