不在fnAjaxReload / Ajax.Reload / __reload上绘制

时间:2014-07-17 08:39:54

标签: datatables

我只是有一个古玩问题,当我重新加载我的桌子时,抽奖活动并没有被解雇。

这是我的表init:

mCommissionTable = $("#CommissionTable").dataTable({ "bJQueryUI": false, "sDom": 'lfrtip', "columns": [ { "data": "CommissionId" }, { "data": "Description" }, { "data": "CommissionTypeDisplayName" }, { "data": "DivisionCode" }, { "data": "EmployeeName" }, { "data": "EmployeeNumber" }, { "data": "PeriodFrom" }, { "data": "PeriodTill" }, { "data": "ApprovalStatusDisplayName" }, { "data": "StatusDisplayName" }, { "data": "Comment" } ] });

这是我的刷新:

function onButtonClickA() { mCommissionTable.fnReloadAjax("GridCommunication.aspx?do=GetCommission" + mFilter, RefreshSelectedRows); }

这是RefreshSelectedRows:

function RefreshSelectedRows() { alert('fired!'); }

所以一切正常,直到我第一次点击按钮才会加载表格,永远我点击按钮表格将​​被加载。但实际上每次都不会触发回调(RefreshSelectedRows)。

在DataTables.js代码中,我找到了__reload方法,其中API注册了一次回调事件,第7140行:

if (callback) {
    var api = new _Api(settings);

    api.one('draw', function () {
        callback(api.ajax.json());
    });
}

当我使用Visual Studio跟踪它并将断点设置为Api时,单命令将以100%命中,因此它被注册。回调是自己(只有当事件被触发时才会发生)被随机命中。我无法重现它。就这样发生了。我在按钮上点击了20次,没用了15次,没有5次......

我试图追踪它,但据我在_fnReDraw方法中可以看到,调用fnDraw并触发一切中的绘制事件是好的...

那么...... bug?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

发现错误! 这是一个旧的IE版本!

我一开始使用IE9 +就像魅力一样!