我遇到的情况是我使用相同的Asp.Net MVC页面根据一些查询字符串值显示不同的数据集。即?isValid=true/false
我使用 Datatables.net 格式化网格显示。我正在使用 serverSide 处理和 AJAX 来分页数据。我还使用stateSave
参数来保存列顺序和搜索术语等。
作为一个例子,当我使用一个数据集查看网格时,我得到10页。如果我然后选择要查看的第10页,然后使用其他数据集转到页面,我可能只有5页,但saveState
设置为第10页,所以我得到一个空格,因为实际上只有5数据页面。
我正在尝试找到一种方法将页面值重新调整到其中一个现有页面,以便网格显示一些内容。
有没有办法使用jquery / javascript将页面设置为新值?或者甚至默认将其设置为第一页?
我认为这会进入drawCallback
事件?
var table = $('#myTable');
table.dataTable({
serverSide: true,
scrollX: true,
drawCallback: function(settings, json) {
$('.dataTables_scrollBody thead tr').css({ visibility: 'collapse' });
},
stateSave: true,
stateLoadParams:function(settings,data){
console.log("params",data);
}
};
答案 0 :(得分:0)
使用DataTables api
检查page.info()
并相应地更改start
页面。
var table = $('#myTable');
table.dataTable({
serverSide: true,
scrollX: true,
drawCallback: function(settings, json) {
$('.dataTables_scrollBody thead tr').css({ visibility: 'collapse' });
},
stateSave: true,
stateLoadParams:function(settings, data){
var api = new $.fn.dataTable.Api(settings);
var info = api.page.info();
if (data.start > info.pages) {
data.start = 1; // or (info.pages) for last page
}
}
};