在datatable initComplete中,不会在table.ajax.reload()之后调用;

时间:2019-05-28 16:06:45

标签: jquery asp.net-mvc datatable

initComplete的数据表中,我写了一些代码。第一次运行正常,但是在调用table.ajax.reload()之后,initComplete在数据表中未执行。

"initComplete": function(settings, json) {
  $("#customerBids tr.cls-x-setTr").each(function() {
    debugger;
    var trId = $(this).attr('id');
    $('#' + trId + ' td').hide();
    $('#' + trId).append('<td class="cls-x-tmpTD" colspan="18"> </td>');
  });
},

我添加了这个造成问题的时间间隔:

timer = setInterval(function() { 
  table.ajax.reload(null, false); 
}, 15000);

1 个答案:

答案 0 :(得分:0)

reload()的第一个参数是要执行的回调函数的引用。这样,您可以将initComplete()逻辑提取到它自己的函数中,该函数将从两个事件中调用。试试这个:

// in datatable settings:
"initComplete": foo,

// your reload logic:
timer = setInterval(function() { 
  table.ajax.reload(foo, false); // note 'foo' here
}, 15000);

// somewhere outside of your datatable definition:
function foo() {
  $("#customerBids tr.cls-x-setTr").each(function() {
    debugger;
    var trId = $(this).attr('id');
    $('#' + trId + ' td').hide();
    $('#' + trId).append('<td class="cls-x-tmpTD" colspan="18"> </td>');
  });
}