Dart 如何刷新bwu_数据网格中的数据

Dart 如何刷新bwu_数据网格中的数据,dart,bwu-datagrid,Dart,Bwu Datagrid,我正试图以以下方式刷新现有的datagrid,但这会导致呈现错误,比如仍然出现行。这样做的适当方式是什么 void onData(地图数据){ if(相同(数据,数据))返回; 数据=数据; if(提供程序==null){ provider=新的MapDataItemProvider(); 设置(dataProvider:dataProvider,columns:columns,gridOptions:gridOptions); }否则{ dataProvider.items.clear();

我正试图以以下方式刷新现有的datagrid,但这会导致呈现错误,比如仍然出现行。这样做的适当方式是什么

void onData(地图数据){
if(相同(数据,数据))返回;
数据=数据;
if(提供程序==null){
provider=新的MapDataItemProvider();
设置(dataProvider:dataProvider,columns:columns,gridOptions:gridOptions);
}否则{
dataProvider.items.clear();
}
data.forEach((k,v)=>provider.add(tomap(k,v));
grid.render();
}

阅读DataView示例时,除了render()之外,似乎还需要进行一些调用

  • 网格失效视图(如changedRows)
  • grid.updateRowCount()
  • grid.invalidateAllRows()文件
但是最好的方法可能是
invalidate()

添加
invalidate()
后,网格已正确重新绘制

void onData(地图数据){
if(相同(数据,数据))返回;
数据=数据;
if(提供程序==null){
provider=新的MapDataItemProvider();
设置(dataProvider:dataProvider,columns:columns,gridOptions:gridOptions);
}否则{
dataProvider.items.clear();
}
data.forEach((k,v)=>provider.add(tomap(k,v));
grid.invalidate();
}
从中失效的代码

void invalidate(){
updateRowCount();
使无效的所有行();
render();
}
invalidateAllRows()
是通知网格数据已更改的另一种方法