Tôi đang sử dụng phiên bản mới nhất của jQuery datatables
. Có chức năng gọi lại nào mà tôi có thể sử dụng ngay sau khi dữ liệu đã được tải và hiển thị trong datatable không?Cách xác định khi nào dữ liệu jQuery được tạo và được nạp với dữ liệu
Tôi có một dữ liệu mà tôi đang thử nghiệm trong IE8
. Tôi có 2 bộ dữ liệu mà tôi đang thử nghiệm (trong đó tôi chỉ sử dụng một bộ dữ liệu tại một thời điểm). Tôi có một mảng JavaScript và một tập hợp dữ liệu mà tôi nhận được từ một cuộc gọi Ajax. Tôi đang sử dụng ASP.NET MVC 3
.
Cấu hình mà được dữ liệu của mình từ một cuộc gọi 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');
Khi DataTable tôi được nạp theo cách này DataTable được tạo ra (không có dữ liệu) và hộp chế biến màn hình và hiển thị cửa sổ bật lên cảnh báo. Tại thời điểm này, datatable là có nhưng không có dữ liệu đã được nạp vào datatable. Chỉ khi cửa sổ bật lên biến mất (khi tôi nhấp vào nút Ok trên cửa sổ bật lên) thì dữ liệu sẽ được tải vào dữ liệu. Tại sao điều này?
Cấu hình mà được dữ liệu của nó từ một mảng 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');
Các DataTable được tạo ra và dữ liệu được nạp và sau đó chỉ làm màn hình hiển thị popup. Điều này khác với kịch bản đầu tiên. Tại sao điều này là trường hợp?
Nếu tôi đi với kịch bản đầu tiên, có cách nào để tôi có thể xác định thời điểm dữ liệu được tạo và tải dữ liệu không?
Với kiểm tra này, tôi muốn nó được tổng quát để nó có thể được sử dụng những gì bao giờ cách tôi quyết định để tải nó với dữ liệu.
bạn đã thử '.ajaxSucess'? – undefined
Chưa có, nhưng có một tổng quát hơn mà tôi có thể sử dụng không phân biệt nếu nó nhận được dữ liệu của nó từ một cuộc gọi Ajax hoặc chỉ là một mảng JavaScript đơn giản? –
có, bạn nói đúng, nó lấy dữ liệu từ một mảng, bạn có thể thử phương thức ['promise()'] (http://api.jquery.com/promise/) và 'done()'. – undefined