簡體   English   中英

如何清除 flutter 中 PaginatedDataTable 的 DataTableSource?

[英]how to clear DataTableSource for PaginatedDataTable in flutter?

我正在嘗試更新 flutter 中 PaginatedDataTable 中的記錄,但假設我有 5 條記錄,我現在更新記錄,它將顯示 10 條舊記錄、5 條舊記錄和無變化數據。

清除 PaginatedDataTable 的 DataTableSource(清除 DataCell)以用新的更新它們的最佳方法是什么? 這是 MySource 的聲明:

 MySource mySource = new MySource(id, sub, c_date, m_date, status);

這是 DataTableSource 的 class:

class MySource extends DataTableSource {
  List<String> value1;
  List<String> value2;
  List<String> value3;
  List<String> value4;
  List<String> value5;
  String a;
  String b;
  MySource(this.value1, this.value2, this.value3, this.value4, this.value5) {
    //print(value);
  }
  @override
  DataRow getRow(int index) {
    return DataRow.byIndex(
      onSelectChanged: (changedvalue) {
        print(value1[index].toString());
      },
      index: index,
      cells: [
        DataCell(Text(value1[index].toString())),
        DataCell(Text(value2[index].toString())),
        DataCell(Text(value3[index].toString())),
        DataCell(Text(value4[index].toString())),
        DataCell(m_table_icon(value5[index].toString())),
      ],
    );
  }

  @override
  // TODO: implement isRowCountApproximate
  bool get isRowCountApproximate => false;

  @override
  // TODO: implement rowCount
  int get rowCount => value1.length;

  @override
  // TODO: implement selectedRowCount
  int get selectedRowCount => 0;
}

和 PaginatedDataTable 的這個小部件:

   PaginatedDataTable(
                      showCheckboxColumn: false,
                      //header: Text('Header Text'),
                      rowsPerPage: 20,
                      columns: [
                        DataColumn(label: Text('ID')),
                        DataColumn(label: Text('SUB')),
                        DataColumn(
                            label: Text('Created_Date')),
                        DataColumn(
                            label: Text('M_Date')),
                        DataColumn(label: Text('Finish')),
                      ],

從 php 服務器獲取數據:

Future get_table_info() async {
    var output = await update_m_table(search_keyword);

    id.clear();
    sub.clear();
    c_date.clear();
    m_date.clear();
    status.clear();

    setState(() {
      for (int i = 0; i < output.length; i++) {
        id.add(((output[i].id)));
        sub.add(((output[i].sub)));
        c_date.add(((output[i].created_date)));
        print((output[i].created_date));
        m_date.add(((output[i].date)));
        status.add(((output[i].status)));
      }
    });
  }

我也需要這個,當我將鎖定在 json 數據形式 php 內時添加搜索欄。

這解決了這個問題:

output.clear();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM