颤振 || Firestore:如何从 firestore 中检索数据并将其显示在 DataTable 中
Flutter || Firestore: how to retrieve data from firestore and display it in the DataTable
我正在尝试从 firestore 检索数据并将其显示在 DataTable 上。一切正常,但我在为每个用户信息创建 DataRow 列表时遇到问题。
List<DataRow> buildList(allData){
List? dataRowList;
for(int i =0; i <allData.length; i++){
DataRow(cells: [
DataCell(
Text(allData[i]['customerNumber']),
),
DataCell(Text(allData[i]['Name'])),
DataCell(Text(allData[i]['TCKN'])),
DataCell(Text(allData[i]['VKN'])),
DataCell(Text(allData[i]['paketAdi'])),
DataCell(
Text(
allData[i]['status'],
style: TextStyle(
color: allData[i]['status'] == "Tamamlandı"
? Colors.green
: allData[i]['status'] == "İşlem Başarısız"
? Colors.red
: allData[i]['status'] ==
"Belgeler Bankada"
? Colors.cyanAccent
: Colors.blue),
),
),
DataCell(Text(allData[i]['startDate'])),
DataCell(Text(allData[i]['endDate'])),
]);
}
return null;
}
如何 return 列出 DataRows 并按如下方式使用它们:
FutureBuilder(
future: getUserInfoData(),
builder: (BuildContext context, AsyncSnapshot<List> snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();
List? allData = snapshot.data;
return DataTable(
columnSpacing: 22,
columns: [
DataColumn(label: Text('Müşteri No')),
DataColumn(label: Text('İsim Soyisim')),
DataColumn(label: Text('TCKN')),
DataColumn(label: Text('VKN')),
DataColumn(label: Text('Paket Adı')),
DataColumn(label: Text('Paket Durumu')),
DataColumn(label: Text('Baslangic Tarih')),
DataColumn(label: Text('Bitis Tarih')),
],
rows: buildList(allData),
);
},
)
提前致谢!
对于那些正在寻找该问题答案的人,我是这样想的;
我修改了buildList;
DataRow buildList(allData, i) {
return DataRow(cells: [
DataCell(
Text(allData[i]['customerNumber']),
),
DataCell(Text(allData[i]['Name'])),
DataCell(Text(allData[i]['TCKN'])),
DataCell(Text(allData[i]['VKN'])),
DataCell(Text(allData[i]['paketAdi'])),
DataCell(
Text(
allData[i]['status'],
style: TextStyle(
color: allData[i]['status'] == "Tamamlandı"
? Colors.green
: allData[i]['status'] == "İşlem Başarısız"
? Colors.red
: allData[i]['status'] == "Belgeler Bankada"
? Colors.cyanAccent
: Colors.blue),
),
),
DataCell(Text(allData[i]['startDate'])),
DataCell(Text(allData[i]['endDate'])),
]);
}
这就是您调用此函数的方式;
rows: List.generate(allData.length, (index) =>
buildList(allData, index))
我正在尝试从 firestore 检索数据并将其显示在 DataTable 上。一切正常,但我在为每个用户信息创建 DataRow 列表时遇到问题。
List<DataRow> buildList(allData){
List? dataRowList;
for(int i =0; i <allData.length; i++){
DataRow(cells: [
DataCell(
Text(allData[i]['customerNumber']),
),
DataCell(Text(allData[i]['Name'])),
DataCell(Text(allData[i]['TCKN'])),
DataCell(Text(allData[i]['VKN'])),
DataCell(Text(allData[i]['paketAdi'])),
DataCell(
Text(
allData[i]['status'],
style: TextStyle(
color: allData[i]['status'] == "Tamamlandı"
? Colors.green
: allData[i]['status'] == "İşlem Başarısız"
? Colors.red
: allData[i]['status'] ==
"Belgeler Bankada"
? Colors.cyanAccent
: Colors.blue),
),
),
DataCell(Text(allData[i]['startDate'])),
DataCell(Text(allData[i]['endDate'])),
]);
}
return null;
}
如何 return 列出 DataRows 并按如下方式使用它们:
FutureBuilder(
future: getUserInfoData(),
builder: (BuildContext context, AsyncSnapshot<List> snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();
List? allData = snapshot.data;
return DataTable(
columnSpacing: 22,
columns: [
DataColumn(label: Text('Müşteri No')),
DataColumn(label: Text('İsim Soyisim')),
DataColumn(label: Text('TCKN')),
DataColumn(label: Text('VKN')),
DataColumn(label: Text('Paket Adı')),
DataColumn(label: Text('Paket Durumu')),
DataColumn(label: Text('Baslangic Tarih')),
DataColumn(label: Text('Bitis Tarih')),
],
rows: buildList(allData),
);
},
)
提前致谢!
对于那些正在寻找该问题答案的人,我是这样想的;
我修改了buildList;
DataRow buildList(allData, i) {
return DataRow(cells: [
DataCell(
Text(allData[i]['customerNumber']),
),
DataCell(Text(allData[i]['Name'])),
DataCell(Text(allData[i]['TCKN'])),
DataCell(Text(allData[i]['VKN'])),
DataCell(Text(allData[i]['paketAdi'])),
DataCell(
Text(
allData[i]['status'],
style: TextStyle(
color: allData[i]['status'] == "Tamamlandı"
? Colors.green
: allData[i]['status'] == "İşlem Başarısız"
? Colors.red
: allData[i]['status'] == "Belgeler Bankada"
? Colors.cyanAccent
: Colors.blue),
),
),
DataCell(Text(allData[i]['startDate'])),
DataCell(Text(allData[i]['endDate'])),
]);
}
这就是您调用此函数的方式;
rows: List.generate(allData.length, (index) =>
buildList(allData, index))