如何用Datatable行填充屏幕的空白



我有一个数据表,由mysql的结果填充。行数取决于mysql的结果数。我需要用DataTable的行来填充所有空的屏幕空间,不管mysql的结果有多少。换句话说:如果结果数小于行数,DataTable的顶部行将被填充,底部行将为空。现在的工作原理:

SingleChildScrollView _dataColumn() {
return SingleChildScrollView(
scrollDirection: Axis.vertical,
child: SingleChildScrollView(
child: CustomDataTable(
columns: [
DataColumn(
label: Text('Teachers'),
),
],
rows: _filterEmployees
.map(
(employee) => DataRow(cells: [
DataCell(
Text(
employee.teachName,
),
onTap: () {
...
});
},
),
]),
)
.toList(),
),
),
);

}

为什么不使用List Generate进行固定数量的迭代并映射员工数量呢。

SingleChildScrollView _dataColumn() {
return SingleChildScrollView(
scrollDirection: Axis.vertical,
child: SingleChildScrollView(
child: CustomDataTable(
columns: [
DataColumn(
label: Text('Teachers'),
),
],
rows: 
List<int>.generate(10, (i) => i).map((num) {
if (num < _filterEmployees.length) {
return _filterEmployees[num];
}
//Default Employee object
return Employee();
}).map((employee) => DataRow(cells: [
DataCell(
Text(
employee.teachName,
),
onTap: () {
...
});
},
),
]),
)
.toList(),
),
),
);
}

现在,您的Datatable将始终由10个条目组成,第一个条目将被填充,但稍后将有空条目。

最新更新