我有一些绑定到数据的静态数据。然后我使用jquery datatable.net插件将分页应用于表。
现在我有外部过滤逻辑,它隐藏并显示行。我设法过滤所有页面上的记录。但有些我无法根据过滤后的记录重置分页(即页码)。只有所有页面中的记录都消失了,但不会重置分页。例如早先我有100条记录和10页(每页10条记录),过滤后我有30条记录,所以我只能看到3页,而是看到所有10页,有些页面是空白的。
我有以下代码:
function initSorting() {
var odatatable = $("#tblLoanPayment").DataTable({
"sDom": '<p"top"><"bottom"><"clear">',
paging: true,
searching: false,
ordering: true,
select: false,
lengthChange: false,
pagingType: "full_numbers",
"oLanguage": {
"sInfo": "_START_ - _END_ of _TOTAL_",
"oPaginate": {
"sNext": ">",
"sPrevious": "<",
"sFirst": "<<",
"sLast": ">>"
}
},
"aaSorting": [],
bInfo: false,
"columnDefs": [{
"targets": [2, 3, 4, 5],
"orderable": false
}]
});
return odatatable;
}
$(document).ready(function () {
checkNEnableButton();
var odatatable = initSorting();
$(".chosen-select").change(function () {
$('#tblLoanPayment').DataTable().destroy();
//some add remove row logic here...
initSorting();
});
});
感谢任何帮助。提前谢谢。
答案 0 :(得分:1)
我会将我的评论作为回答:我的建议是保持简单而不是创造和放弃。在onchange上破坏表。我会在document.ready()上创建表,并在更改下划线数据后调用draw()。以下是我在申请中的表现:
sortFilteredGridData();
table.clear();
table.rows.add(filteredGridData);
table.draw();
过滤的网格数据是一个数据数组。