Flutter/Dart中如何将List转换为DataTable的行?
将cardbills列表转换为DataTable行的实现方法
核心思路
遍历cardbills列表中的每个账单对象,将其映射为DataRow,每个字段对应一个DataCell,确保单元格顺序与表头列顺序一致即可。
完整代码示例
首先确认表头生成函数(如果未实现):
List<DataColumn> getColumns(List<String> columnNames) { return columnNames.map((name) => DataColumn(label: Text(name))).toList(); }
然后修改DataTable的rows属性:
DataTable( columns: getColumns(['serial', 'value', 'vat', 'total', 'energy']), rows: cardbills.map((bill) { return DataRow(cells: [ DataCell(Text(bill['serial'])), // 用toStringAsFixed控制小数位数,让表格显示更整齐 DataCell(Text(bill['value'].toStringAsFixed(4))), DataCell(Text(bill['vat'].toStringAsFixed(4))), DataCell(Text(bill['total'].toStringAsFixed(4))), DataCell(Text(bill['energy'].toString())), ]); }).toList(), )
关键说明
cardbills是List<Map<String, dynamic>>类型,直接通过map方法遍历转换即可- 数值类型字段需转为字符串才能在
Text组件中显示,toStringAsFixed(n)可指定保留n位小数,优化视觉效果 - 单元格顺序必须和
columns定义的表头顺序完全对应,否则内容会错位
内容的提问来源于stack exchange,提问作者Bill Tertis
相关产品推荐
相关产品推荐

