我只是有一个古玩问题,当我重新加载我的桌子时,抽奖活动并没有被解雇。
这是我的表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?
有什么想法吗?
答案 0 :(得分:0)
发现错误! 这是一个旧的IE版本!
我一开始使用IE9 +就像魅力一样!