我试图在flutter中更新PaginatedDataTable中的记录,但假设我有5条记录,现在我更新记录,它将显示10条旧记录,5条旧记录和无更改数据。
清除PaginatedDataTable的DataTableSource (clear DataCell)的最佳方法是用新的one更新它们?这是MySource的声明:
MySource mySource = new MySource(id, sub, c_date, m_date, status);这是DataTableSource的类:
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。
发布于 2021-05-15 15:38:07
这就解决了这个问题:
output.clear();https://stackoverflow.com/questions/67535610
复制相似问题