如何获取动态数据表颤动的选定行索引

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)