我有一个带有"iDisplayLength":-1
的jquery DataTable(所有记录),在第一个加载用户上将看到所有记录。
这个表每分钟都刷新一次(每次刷新初始化表 - 也许这不是最好的?)。
function initEventsTable() {
self.$eventTable = $("#events_table");
if (self.$eventTable != undefined) {
self.oTable = self.$eventTable.DataTable({
"scrollX": true,
"aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
// Set the initial value
"iDisplayLength":-1,
"sPaginationType": "bootstrap",
"oLanguage": {
"sLengthMenu": "_MENU_ records",
"oPaginate": {
"sPrevious": "Prev",
"sNext": "Next"
}
},
aaSorting: [[8, 'desc'], [5, 'asc']],
bSortable: true,
});
}
用户可以更改行数(例如10行):
$('[name="events_table_length"]').on('change', function () {
eventsTableLength = $(this).val();
});
表刷新后(initEventsTable()
)我使用下面的代码更改长度:
var oSettings = self.oTable.fnSettings();
if (oSettings != null)
{
$('select[name^="events_table_length"] option:selected').attr("selected", null);
$('select[name^="events_table_length"] option[value=' + eventsTableLength + ']').attr("selected", "selected");
oSettings._iDisplayLength = eventsTableLength;
self.oTable.fnDraw();
}
问题在于分页,刷新后我点击第2页时会显示所有记录,而不仅仅是10。
答案 0 :(得分:0)
我想出了这个:
$('select[name^="events_table_length"]').change();
相反专注于桌子,我专注于长度的下拉。
我添加了一个change()
,这就是魔术。