Обратный вызов изменения страницы данных - PullRequest
21 голосов
/ 02 марта 2012

Я использую функцию '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
};

Ответы [ 4 ]

19 голосов
/ 02 марта 2012

Вы можете получить доступ к внутренним настройкам данных в DataTables для манипулирования массивом обратных вызовов отрисовки (aoDrawCallback, а не fnDrawCallback внутри - это массив, так как может быть несколько обратных вызовов), или (и что я бы предложил) вы можете добавить «отрисовку»'слушатель событий:

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

События, инициируемые DataTables, документированы здесь: http://datatables.net/docs/DataTables/1.9.0/#summary_events

5 голосов
/ 03 октября 2012

ЕСЛИ у вас версия больше 1.8, вы можете использовать ее для отображения событий смены страницы:

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

Надеюсь, это поможет!

1 голос
/ 19 июня 2013

Вместо двух отдельных вызовов просто добавьте .bind () перед .dataTable (), например, следующий, который запускает функцию setMouseDown при каждом изменении страницы (включая отображение первой страницы):

$('#myTable')
    .bind('page', setMouseDown())
    .dataTable( 
    { 
        bJQueryUI: true, 
        ... Other Init Stuff Here ... 
    });
1 голос
/ 02 марта 2012
...