Flutter中如何将双列表数据对应生成DataTable表格
实现Flutter中双列表数据绑定生成DataTable
要把usersEmails和usersNames两个列表的对应元素组合成DataTable的行,同时生成自增ID,直接通过遍历列表动态构建行数据即可,具体实现如下:
前提说明
确保usersEmails和usersNames的长度一致,避免出现索引越界问题。如果两个列表长度可能不同,可以取两者的最小长度作为遍历上限。
完整代码示例
// 定义你的数据源列表 List<String> usersEmails = ["ABC", "DEF", "GHI"]; List<String> usersNames = ["MNO", "PQR", "XYZ"]; // 构建用户信息DataTable的方法 DataTable buildUserInfoTable() { List<DataRow> tableRows = []; // 取两个列表的最小长度,避免索引越界 int totalRows = usersEmails.length < usersNames.length ? usersEmails.length : usersNames.length; for (int i = 0; i < totalRows; i++) { tableRows.add(DataRow( cells: [ // 生成自增ID,起始值101,可按需调整 DataCell(Text("${100 + i + 1}")), DataCell(Text(usersEmails[i])), DataCell(Text(usersNames[i])), ], )); } return DataTable( columns: const [ DataColumn(label: Text('ID')), DataColumn(label: Text('Email')), DataColumn(label: Text('Name')), ], rows: tableRows, ); }
关键逻辑说明
- 通过
for循环遍历列表索引,依次取出对应位置的邮箱和姓名,组合成DataRow - ID通过
100 + i + 1实现从101开始的自增编号,修改起始值即可调整ID规则 - 加入了长度判断,即使两个列表长度不一致,也能正常生成有效行数据,不会报错
内容的提问来源于stack exchange,提问作者Mr Fin
相关产品推荐
相关产品推荐

