参考: http: //datatables.net/reference/api/page.info()
我正在尝试获取 ajax POST 生成的 jQuery DataTable 的当前分页信息。
使用提供的函数 .page.info(),即使表有多个页面,它也会返回页面和页面的全零。
我的目标是在分页类型“简单”旁边提供分页信息,
[总页数] [<|>] 中的[当前页码] 页。
这是结果输出:
Object {
end: 0
length: 10
page: 0
pages: 0
recordsDisplay: 0
recordsTotal: 0
start: 0
}
Run Code Online (Sandbox Code Playgroud)
这是 jQuery DataTable 代码:
var oSegmentsDatatable = $('table#segments-datatable').DataTable({
ajax: {
type: "POST",
url: urlSegmentsDatatable,
data: {'advertiser_id':<?=$advertiser_id?>},
error: function (jqXHR, textStatus, errorThrown) {
}
sDom: 'p<"H"f>t<"F"lr>',
bProcessing: false,
bServerSide: true,
responsive: true,
bFilter: true,
sPaginationType: "simple",
aaSorting: [[8,'desc']],
bAutoWidth: false,
aoColumns : [
{ 'sWidth': '25%' }, // 0
{ 'sWidth': '3%' }, // 1
{ 'sWidth': '3%' }, // 2
{ 'sWidth': '3%' }, // 3
{ 'sWidth': '3%' }, // 4
{ 'sWidth': '5%' }, // 5
{ 'sWidth': '5%' }, // 6
{ 'sWidth': '5%' }, // 7
{ 'sWidth': '10%' } // 8
],
columnDefs: [{
targets: "no-sort",
orderable: false
}]
});
var info = oSegmentsDatatable.page.info();
console.log(info);
Run Code Online (Sandbox Code Playgroud)
经典的 javascript 异步问题。你的
var info = oSegmentsDatatable.page.info();
Run Code Online (Sandbox Code Playgroud)
在 AJAX 完成其业务之前执行。你最好在drawCallback回调中这样做:
function processInfo(info) {
console.log(info);
//do your stuff here
}
var table = $('#example').DataTable({
//other initialisation options
drawCallback : function() {
processInfo(this.api().page.info());
}
});
Run Code Online (Sandbox Code Playgroud)
您也可以加入该page.dt事件,但是您必须在第一次初始化时执行一些操作。page.dt仅当用户单击新页面或以编程方式更改页面时才会触发。
| 归档时间: |
|
| 查看次数: |
8762 次 |
| 最近记录: |