我正在使用最新版本的jQuery datatables
。是否有一个回调函数可以在数据加载并显示在数据表中之后立即使用?如何确定何时创建jQuery数据表以及如何加载数据
我有一个数据表,我正在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'? – undefined
现在还没有,但是有没有更通用的方法可以使用,无论它是从Ajax调用获取数据还是仅仅是一个普通的JavaScript数组? –
是的,你是对的,它从数组中检索数据,你可以尝试['promise()'](http://api.jquery.com/promise/)和'done()'方法。 – undefined