DataTable TableTools не экспортирует все строки с ложным bServerSide при использовании ajax
Я использую следующий код, чтобы создать таблицу данных и разрешить экспорт в различные форматы с помощью TableTools. Я вытягиваю данные через ajax, но только в начале, поэтому вся фильтрация, сортировка и т. Д. Выполняется на стороне клиента, а bServerSide имеет значение false. Если я заполняю строки в таблице напрямую, я могу получить все отфильтрованные результаты, но если я использую вызов ajax (который позволяет мне воспользоваться сообщением "Обработка..."), он экспортирует только текущую страницу данных,
var oTable = $('#dataTableAccountList').dataTable({
"sDom": "<'row'<'col-lg-6'l><'col-lg-6'Tf>r>t<'row'<'col-lg-6'i><'col-lg-6'p>>",
"bServerSide": false,
"bDeferRender": true,
"sAjaxSource": '@Url.Action("AccountLoadThroughAjaxCall", "AccountList")',
"bProcessing": true,
"oTableTools": {
"sSwfPath": "/Scripts/TableTools-2.2.0/swf/copy_csv_xls_pdf.swf",
"aButtons": [
{
"sExtends": "copy",
"oSelectorOpts": { filter: 'applied', order: 'current' }
},
{
"sExtends": "xls",
"oSelectorOpts": { filter: 'applied', order: 'current' },
"sFileName": "AccountList_yyyy-MM-dd_hh.mm.ss.xls"
},
{
"sExtends": "pdf",
"oSelectorOpts": { filter: 'applied', order: 'current' },
"sFileName": "AccountList_yyyy-MM-dd_hh.mm.ss.pdf",
"sPdfOrientation": "landscape",
"sPdfMessage": "Account List" + ($('div.dataTables_filter input').length > 0 ? " Filter: " + $('div.dataTables_filter input').val() : "")
},
{
"sExtends": "print",
"oSelectorOpts": { filter: 'applied', order: 'current' },
}
]
}
});
Опять же, я уверен, что упускаю что-то простое, но не вижу, что это такое.
Заранее спасибо!
1 ответ
Я не смог использовать sAjaxSource с bServerSide:false. Я не думаю, что ты можешь. Мне пришлось преобразовать объект json в список списков и использовать вместо него параметр aaData.
см. здесь: http://datatables.net/release-datatables/examples/data_sources/ajax.html и здесь: http://datatables.net/examples/data_sources/js_array.html