後端返回 JSON 正常,前端 Bootstrap Table 初始化無報錯,**表格空白無數據**。
| 模式 | 預期響應結構 | 關鍵配置 |
|---|---|---|
| client (默認) | 數組 [{...}, {...}] | 無需 total |
| server | 對象 { total: 100, rows: [...] } | sidePagination: 'server' |
若後端返回:
{ "result": { "count": 100, "list": [...] } }
配置:
$('#table').bootstrapTable({
sidePagination: 'server',
dataField: 'result.list', // 指定數據數組路徑
// 或使用 responseHandler 完全控制
responseHandler: function(res) {
return { total: res.result.count, rows: res.result.list };
},
columns: [{ field: 'id', title: 'ID' }, { field: 'name', title: 'Name' }]
});
{ "userId": 1, "userName": "Tom" }{ field: 'userId', ... }、{ field: 'userName', ... }userId ≠ userid。$('#table').bootstrapTable('getData') 查看內部數據是否已加載。onLoadSuccess: function(data){ console.log('loaded', data); } 回調確認數據進入。sidePagination: 'server' 但響應是數組 → 表格以為 total=0 不顯示分頁也無數據。rows 字段但前端用 dataField: 'data' → 找不到數據。field 拼寫錯誤 → 列顯示空白。| 特性 | EasyUI | Bootstrap Table |
|---|---|---|
| 後端分頁響應字段 | total, rows (固定) | total, rows (可配置 dataField/responseHandler) |
| 前端分頁 | 自動 | 自動 (默認 sidePagination: 'client') |
| loadFilter | 有 | 用 responseHandler 替代 |
Bootstrap Table 不顯示數據**90% 是響應結構與配置不匹配**。檢查:1. sidePagination 模式 2. dataField/responseHandler 映射 3. columns.field 與 JSON 鍵名一致。用 responseHandler 統一規範化響應最靈活可控。