Я хочу экспортировать в Excel. вот мой код.
$('#tabelku').dataTable({
dom: 'Bfrtip',
"buttons": [{
extend: 'excel',
text: 'Excel'
}
],
dom: '<"row"<"col-lg-6"l><"col-lg-6"f>><"table-responsive"t>p',
"aLengthMenu": [
[10, 20, 30, 40, -1],
[10, 20, 30, 40, "All"] // change per page values here
],
"bProcessing": true,
"bServerSide": true,
"sServerMethod": "POST",
"bRetrieve": true,
"sAjaxSource": "<?= site_url() ?>monev/do_Tabel_Universitas",
// set the initial value
"iDisplayLength": 10,
"oLanguage": {
"sProcessing": '<i class = "fa fa-coffee"></i> Please wait...',
"sLengthMenu": "_MENU_ records",
"oPaginate": {
"sPrevious": "Prev",
"sNext": "Next"
}
},
"aoColumnDefs": [{
'bSortable': false,
'aTargets': [0, 8]
}
],
});
кнопка Excel уже отображается, но проблема в том, что раскрывающийся список содержит 10, 20, 30, 40 записей. прежде чем я добавлю этот код
dom: 'Bfrtip',
"buttons": [{
extend: 'excel',
text: 'Excel'
}
],
раскрывающийся список 10, 20, 30, 40 может показать.. какой-нибудь код, который мне не хватает ??
Да, вы правы. Я пересматриваю dom, чтобы пользователь мог выбрать «Все» в раскрывающемся списке, а затем экспортировать в Excel.
Хорошо, понял — но в таком случае действительно ли вам нужно использовать обработку на стороне сервера? Загрузка всех данных с сервера в DataTables противоречит основной цели обработки на стороне сервера. Либо (а) вам нужна обработка на стороне сервера, потому что у вас слишком много данных (и DataTables работает плохо)... или (б) у вас не слишком много данных для обработки DataTables - и, следовательно, вам не нужно использовать обработку на стороне сервера.
Вы указали параметр dom
дважды, и, поскольку вы не видите раскрывающийся список длины, похоже, используется первый вариант (поскольку в нем нет l
, поэтому отображается раскрывающийся список l
длины).
dom: 'Bfrtip',
"buttons": [{
extend: 'excel',
text: 'Excel'
}
],
dom: '<"row"<"col-lg-6"l><"col-lg-6"f>><"table-responsive"t>p',
"aLengthMenu": [
[10, 20, 30, 40, -1],
[10, 20, 30, 40, "All"] // change per page values here
],
Чтобы отобразить и кнопки, и раскрывающийся список длины, удалите один из параметров dom
и убедитесь, что тот, который вы используете, содержит как B
(для кнопок B
), так и l
, например:
dom: '<"row"<"col-lg-6"Bl><"col-lg-6"f>><"table-responsive"t>p',
Больше информации здесь: https://datatables.net/reference/option/dom
Спасибо за ответ @Marleen, это очень помогает!
Просто наблюдение, а не ответ на ваш вопрос: код в вашем вопросе использует обработку на стороне сервера. Если предположить, что это реализовано правильно (на сервере, где предоставляются данные), то DataTables будет получать только одну страницу результатов за раз. Поэтому он может экспортировать в Excel только одну страницу данных, а не весь набор данных.