数据表页面更改回调

Datatables page change callback

本文关键字:回调 数据表      更新时间:2023-09-26

我正在使用函数'fnDrawCallback'进行页面更改。它基本上解决了我的目的。唯一的问题是,当我初始化dataTable对象时,我必须指定该函数。有什么方法可以在初始化后完成吗?

例如:我是这样做的:

$("#tableID").dataTables({'fnDrawCallBack':functionName});

我想这样做:

var oTable = $("#tableID").dataTables();
oTable.fnDrawCallback = functionName;    // or something like this

解决方案:

oTable.aoDrawCallback.push(functionObj);
var functionObj = {
   fn: funtionName
};

您可以访问DataTables的内部数据设置来操作draw回调数组(aoDrawCallback,而不是内部的fnDrawCallback-它是一个数组,因为可以有多个回调),或者(我建议)您可以添加一个"draw"事件侦听器:

var oTable = $("#tableID").dataTables();
$(oTable).bind( 'draw', functionName );

DataTables触发的事件记录如下:http://datatables.net/docs/DataTables/1.9.0/#summary_events

如果您的版本大于1.8,您可以使用它来处理页面更改事件:

    $('#myTable').on('page', function () {...} );

希望这能有所帮助!

您可能看到了http://datatables.net/forums/discussion/2737/addchange-callback-after-initialization-or-else-clone-settings-to-re-build-table/p1

不需要两个单独的调用,只需在.dataTable()之前添加一个.bind(),例如下面的函数,每当发生页面更改时(包括呈现第一个页面),它都会运行setMouseDown函数:

$('#myTable')
    .bind('page', setMouseDown())
    .dataTable( 
    { 
        bJQueryUI: true, 
        ... Other Init Stuff Here ... 
    });