Datatable 服务器端处理 ajax 调用的成功回调
2015-03-30
16917
我想在服务器端调用完成
sAjaxSource: url
中指定的 URL 后,以及在我使用
fnCreatedRow
创建完行后隐藏一些列。我想在此回调中针对多个列执行列可见性语句
table.fnSetColumnVis(0, false, false);
。有没有办法在数据表中执行此操作?我尝试使用
fnDrawCallback
和
fnRowCallback
,但它们根本没有执行。
我编写的代码如下。
table = $('#ID').dataTable({
"bServerSide": true,
"bProcessing": true,
"autowidth": true,
//"bInfo": false,
"dom": 'C<"clear">lfrtip',
"scrollY": "350px",
"scrollCollapse": false,
"paging": true,
"scrollX": true,
"destroy":true,
"sAjaxSource": url,
"aoColumns": [
{
"targets": 0,
//"bVisible": true,
"title": "Select Client",
"bSearchable": false,
"bSortable": false,
"width": "10%"
},//Many such entries
],
"fnCreatedRow": function (nRow, aaData, iDataIndex) {
//Function body
},
"drawCallBack" : //Actual code that i want to get executed after fnCreatedRow has ended
});
2个回答
尝试一下:
"drawCallback": function(settings) {
//do whatever
}
jonmrich
2015-03-30
我遇到过类似的情况,我通过将 xhr 事件附加到我的数据表来解决了它。
参见: https://datatables.net/reference/event/xhr
$table.on('xhr.dt',
function (e, settings, data, xhr) {
//do something with the 'data' returned from server
//OR handle some error using the 'xhr' request
});
就我而言,$table 是我在初始化数据表时预先声明的一个变量。
Ben Croughs
2017-10-26