如何获取动态数据表颤动的选定行索引
How to get selected row index of a dynamic datatable flutter
我有一个显示数据的动态数据表。现在我需要单击该行并将相关数据传递给新的 class。这是我尝试过的方法,如何获得被点击行的正确索引。
rows: snapshot.data.rowData.map<DataRow>((e) {
return DataRow(
cells: e.map<DataCell>((e) => DataCell(Text(e))).toList(),
onSelectChanged: (bool selected) {
if (selected) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => new ImageGridAndListViewScreen(
zoomData:snapshot.data.dataList[index].NextLevelData))//here unable to get the selected row index
);
}
},
);
}).toList(),
您需要在 snapshot.data.rowData
列表上写一个 for loop
以获得要在 onSelectChanged
中使用的索引。像这样。
List<DataRow> buildListOfDataRows(BuildContext context, WardsData wardsData){
List<Ward> wards = wardsData.listOfWards;
List<DataRow> dataRows = [];
for(int i = 0; i < wards.length; i++) {
String floorName = wards[i].floorName;
int ot = wards[i].oxygenBedTotal;
int oa = wards[i].oxygenBedAvailable;
DataRow row = DataRow(
cells: [
DataCell(Text(floorName)),
DataCell(Text('$ot')),
DataCell(Text('$oa')),
],
onSelectChanged: (_){
showUpdatedByInfoPopUp(context, wards[i]);
},
);
dataRows.add(row);
}
return dataRows;
}
并在 DataTable
中使用此函数来构建行。
rows: buildListOfDataRows(context, wardsData)
我有一个显示数据的动态数据表。现在我需要单击该行并将相关数据传递给新的 class。这是我尝试过的方法,如何获得被点击行的正确索引。
rows: snapshot.data.rowData.map<DataRow>((e) {
return DataRow(
cells: e.map<DataCell>((e) => DataCell(Text(e))).toList(),
onSelectChanged: (bool selected) {
if (selected) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => new ImageGridAndListViewScreen(
zoomData:snapshot.data.dataList[index].NextLevelData))//here unable to get the selected row index
);
}
},
);
}).toList(),
您需要在 snapshot.data.rowData
列表上写一个 for loop
以获得要在 onSelectChanged
中使用的索引。像这样。
List<DataRow> buildListOfDataRows(BuildContext context, WardsData wardsData){
List<Ward> wards = wardsData.listOfWards;
List<DataRow> dataRows = [];
for(int i = 0; i < wards.length; i++) {
String floorName = wards[i].floorName;
int ot = wards[i].oxygenBedTotal;
int oa = wards[i].oxygenBedAvailable;
DataRow row = DataRow(
cells: [
DataCell(Text(floorName)),
DataCell(Text('$ot')),
DataCell(Text('$oa')),
],
onSelectChanged: (_){
showUpdatedByInfoPopUp(context, wards[i]);
},
);
dataRows.add(row);
}
return dataRows;
}
并在 DataTable
中使用此函数来构建行。
rows: buildListOfDataRows(context, wardsData)