我有一个绑定到DataTable的PivotGridControl的WinForm。我希望允许用户更新数据表中的一个字段。
我已经想出了如何将编辑器与字段相关联。当用户单击单元格时,编辑器出现,用户编辑该值,然后按Enter键,我的EditValueChanged事件处理程序被调用,我可以保存值。
但问题在保存后出现问题。我的功能在不到一分钟的时间内完成,但有些过程没有完成,我的用户界面被绞死了50-60秒。
我怀疑透视网格在编辑完成后会做一些计算,可能会更新总/子总值。
我尝试关闭所有类型的总数,但没有运气。
在完成editvalueChanged事件的功能后,我的UI变得无法响应。
任何人都可以帮助我理解为什么网格花了那么多时间,我怎么能通过它。
void pivotGridControl_EditValueChanged(object sender, EditValueChangedEventArgs e) {
PivotDrillDownDataSource ds = e.CreateDrillDownDataSource();
for (int j = 0; j < ds.RowCount; j++) {
ds[j][e.DataField] = Convert.ChangeType(e.Editor.EditValue, ds[j][e.DataField].GetType());
}
}
我正在使用Devex v14.1。
每当我在网格EditValueChanged事件中进行更改时触发。所以我们可以说我们一次在一个单元格中进行了更改,此事件将被触发一次,并且将是ds.rowCount = 1.
我的方法也在不到1秒的时间内完成。一旦方法完成,UI被挂起到50-60秒。我的解决方案中没有代码在50-60秒内执行。
我在网格中有大约300 MB的数据。