如何确定何时创建jQuery数据表并加载数据

Bre*_*ogt 15 javascript jquery jquery-plugins internet-explorer-8

我正在使用最新版本的jQuery datatables.是否有一个回调函数,我可以在数据加载并显示在数据表中后立即使用?

我有一个我正在试验的数据表IE8.我有两组我正在测试的数据(我一次只使用一组).我有一个JavaScript数组和一组从Ajax调用中获取的数据.我在用ASP.NET MVC 3.

从Ajax调用获取其数据的配置:

$('#banks-datatable').dataTable({
     "bProcessing": true,
     "sAjaxSource": '/Administration/Bank/List',
     "aoColumns": [
          { "sTitle": "Engine" },
          { "sTitle": "Browser" },
          { "sTitle": "Platform" },
          { "sTitle": "Version" },
          { "sTitle": "Grade" }
     ],
     "bAutoWidth": false,
     "bFilter": false,
     "bLengthChange": false,
     "iDisplayLength": 10
});

alert('test');
Run Code Online (Sandbox Code Playgroud)

以这种方式加载我的数据表时,将创建数据表(没有数据),并显示处理框并显示警报弹出窗口.此时数据表已存在但没有数据已加载到数据表中.只有当弹出窗口消失时(当我单击弹出窗口上的"确定"按钮时),数据才会加载到数据表中.为什么是这样?

从JavaScript数组获取其数据的配置:

var aDataSet = [
     ['Trident', 'Internet Explorer 4.0', 'Win 95+', '4', 'X'],
     ['Trident', 'Internet Explorer 5.0', 'Win 95+', '5', 'C'],
     ['Trident', 'Internet Explorer 5.5', 'Win 95+', '5.5', 'A'],
     ['Trident', 'Internet Explorer 6', 'Win 98+', '6', 'A'],
     ['Trident', 'Internet Explorer 7', 'Win XP SP2+', '7', 'A'],
     ['Trident', 'AOL browser (AOL desktop)', 'Win XP', '6', 'A'],
     ['Gecko', 'Firefox 1.0', 'Win 98+ / OSX.2+', '1.7', 'A']
];

$('#banks-datatable').dataTable({
     "aoColumns": [
          { "sTitle": "Engine" },
          { "sTitle": "Browser" },
          { "sTitle": "Platform" },
          { "sTitle": "Version" },
          { "sTitle": "Grade" }
     ],
     "bAutoWidth": false,
     "bFilter": false,
     "bLengthChange": false,
     "iDisplayLength": 10,
     "aaData": aDataSet
});

alert('test');
Run Code Online (Sandbox Code Playgroud)

创建数据表并加载数据,然后仅显示弹出窗口.这与第一种情况不同.为什么会这样?

如果我使用第一个场景,是否有一种方法可以确定何时创建数据表并加载数据?

通过这个检查,我希望它是通用的,以便可以使用任何方式我决定加载数据.

Xdg*_*Xdg 23

你最好用fnInitComplete:

$(document).ready(function () {
    $('#example').dataTable({
        "fnInitComplete": function (oSettings, json) {
            alert('DataTables has finished its initialisation.');
        }
    });
})
Run Code Online (Sandbox Code Playgroud)


Jas*_*wne 14

你可以使用这个fnDrawCallback功能.每次绘制表时都会调用它.这将包括表格加载数据,排序或过滤.


Dra*_*ako 7

在新版本的jQuery DataTable上,该方法被调用: initComplete()


小智 5

Datatable 提供了 InitComplete 选项。你可以使用它。可能会有帮助

$('#example').DataTable({
  "initComplete": function(){
    alert('Data loaded successfully');
  }
});
Run Code Online (Sandbox Code Playgroud)

链接 -> https://datatables.net/reference/option/initComplete