DataGrid 列配置相同 field 導致嵌套對象數據重複顯示,無法區分「學期」與「班級」字段。
EasyUI 根據 field 直接取值,嵌套對象需通過 formatter(value, row, index) 手動從 row 獲取深層屬性,**field 必須唯一**,不可重複。
$('#dg').datagrid({
columns: [[
{ title: '學期', field: 'semester', formatter: (v, row) => row.cla_semester },
{ title: '班級', field: 'className', formatter: (v, row) => row.cla_name },
// 其他列...
]]
});
field 任意唯一字符串(如 semester, className),不參與取值,僅作標識。formatter 參數 row 為該行完整數據對象,可任意訪問嵌套屬性 row.cla_semester、row.cs.cla_name 等。editor、sorter 並處理嵌套路徑。formatter: function(v, row) {
console.log('row:', row); // 控制台查看完整行結構
return row.targetField;
}
掌握 formatter + row 模式,即可靈活渲染任意結構的嵌套 JSON 數據。