Обратный вызов изменения страницы данных
Я использую функцию '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
};
Ответы
Ответ 1
Вы можете получить доступ к внутренним настройкам данных DataTables, чтобы манипулировать массивом обратного вызова draw (aoDrawCallback, а не fnDrawCallback внутри - его массив, поскольку может быть несколько обратных вызовов), или (и что я предлагаю) вы можете добавить 'draw прослушиватель событий:
var oTable = $("#tableID").dataTables();
$(oTable).bind( 'draw', functionName );
События, запущенные DataTables, описаны здесь: http://datatables.net/docs/DataTables/1.9.0/#summary_events
Ответ 2
Если у вас версия более 1,8, вы можете использовать ее, чтобы попасть в события изменения страницы:
$('#myTable').on('page', function () {...} );
Надеюсь, это поможет!
Ответ 3
Вероятно, вы видели это
http://datatables.net/forums/discussion/2737/addchange-callback-after-initialization-or-else-clone-settings-to-re-build-table/p1
Ответ 4
Вместо двух отдельных вызовов просто добавьте .bind() перед .dataTable(), например, следующее, которое запускает функцию setMouseDown всякий раз, когда происходит смена страницы (включая рендеринг первой страницы):
$('#myTable')
.bind('page', setMouseDown())
.dataTable(
{
bJQueryUI: true,
... Other Init Stuff Here ...
});