【发布时间】:2020-08-17 03:43:50
【问题描述】:
我在对 DataTable 中的列进行排序时遇到严重困难。
这是我的代码
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: DataTable(
sortColumnIndex: 0,
sortAscending: true,
columnSpacing: 5.0,
horizontalMargin: 10,
columns: [
DataColumn(label: Text('Col1'),
DataColumn(label: Text('Col2'),numeric: false ),
DataColumn(label: Text('Col3'),numeric: true ),
DataColumn(label: Text('Col4'), numeric: true),
DataColumn(label: Text('Col5'), numeric: true),
],
rows: myList
.map(
((element) => DataRow(
cells: <DataCell>[
DataCell(Text(element["Col1"]), placeholder: true,showEditIcon: false),
DataCell(Text(element["Col2"].toString())),
DataCell(Text(element["Col3"].toString())),
DataCell(Text(element["Col4"].toString())),
DataCell(Text(element["Col5"].toString())),
],
)),
).toList(),
),
));
我还要做什么?理想情况下,我希望在用户按下的任何列上都有排序功能,但现在,我很高兴只有 1 列可以排序。
如你所见,我已经添加了约束:
sortColumnIndex: 0,
sortAscending: true,
但我得到的只是第一列附近的一个箭头 (ColumnIndex = 0) - 当你按下它时它实际上什么也没做。
我做错了什么?
【问题讨论】:
-
myList 是地图列表?
-
传递
sortColumnIndex只会影响标题行中的指示箭头。数据行不会自动排序。你应该sort the data manually 然后打电话给setState -
谢谢。如何手动对数据进行排序?我遇到的问题是 myList 不是来自 class 。它不是从类中实例化的。 IE。我无法调用 myList.myElement 等语法
标签: sorting flutter dart datatable