【发布时间】:2012-06-16 13:37:06
【问题描述】:
我正在使用最新版本的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');
以这种方式加载我的数据表时,将创建数据表(没有数据)并显示处理框并显示警报弹出窗口。此时数据表已存在,但尚未将数据加载到数据表中。只有当弹出窗口消失时(当我单击弹出窗口上的 Ok 按钮时),数据才会加载到数据表中。这是为什么呢?
从 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');
创建数据表并加载数据,然后只显示弹出窗口。这与第一种情况不同。为什么会这样?
如果我采用第一种情况,有没有办法可以确定数据表何时创建并加载数据?
通过此检查,我希望它是通用的,以便可以以我决定加载数据的任何方式使用它。
【问题讨论】:
-
你试过
.ajaxSucess吗? -
目前还没有,但有没有更通用的方法可以使用,无论它是从 Ajax 调用还是从纯 JavaScript 数组获取数据?
-
是的,你是对的,它从数组中检索数据,你可以试试
promise()和done()方法。 -
我接受了 Jason 的回答,对我来说效果很好。
标签: javascript jquery jquery-plugins internet-explorer-8