目前我正在使用帶有分頁的資料表。現在我最近添加了 Datatable.buttons 庫以使用匯出到 Excel 選項。現在這個功能作業正常,但由于分頁,它只匯出我當前所在頁面的前 10 行。現在,如果我洗掉模型類中的限制,它將匯出我想要的所有條目,但它也消除了降低網站性能的分頁。以下是我目前獲取Datatable資料的AJAX呼叫代碼:
$('#datatable.table').DataTable({
searching: true,
paging: true,
processing: true,
serverSide: true,
bFilter: true,
dom: 'Bfrtip',
async: false,
'columnDefs': [ {
'targets':[0,1,31,32,33,34,35,36,37],
'orderable': false,
}],
buttons: [
{
text:"Export to Excel",
extend: 'excelHtml5',
exportOptions: {
columns: ':visible',
modifier:{
page:'all'
}
}
},
],
ajax: {
"url": '<?php echo site_url('listings/dtlists'); ?>',
"type": "POST"
},
columns: [{
data: "title",
className: "column5"
},
...
現在我已經添加page:'all'了我的修飾符,但它仍然只列印第一個分頁頁面。那么有什么方法可以讓我只為匯出按鈕使用不同的模型功能,我可以手動自定義限制,如 1000 或 2000 條記錄?
基本上我想將按鈕功能重定向到不同的控制器,而不是"url": '<?php echo site_url('listings/dtlists'); ?>',它當前要去的控制器。
uj5u.com熱心網友回復:
此行為的原因是服務器端處理。使用服務器端處理,只有那些需要顯示的記錄由客戶端加載。如果您將分頁設定為 10,則僅加載 10 條記錄 - 并且可以匯出。
如果您擺脫服務器端處理,一切都會正常作業,因為無論您的分頁設定如何,所有相關記錄都會下載到客戶端。服務器端處理僅適用于您有非常大的表并且有很多記錄可以下載的情況。否則它有很多缺點,例如,如果您渲染的值與您的資料庫內容不完全匹配等,搜索將不起作用。
當我絕對無法避免時,我只使用服務器端。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/421050.html
標籤:
