0

我有一个带有绑定到 DataTable 的 PivotGridControl 的 WinForm。我希望允许用户更新数据表上的一个字段。

我已经弄清楚如何将编辑器与该字段相关联。当用户单击单元格时,编辑器出现,用户编辑值,然后按 Enter,我的 EditValueChanged 事件处理程序被调用,我可以保存值。

但问题是在价值被保存之后。我的功能在不到一分钟的时间内就完成了,但是有些过程没有完成,我的 UI 被挂起 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 的数据。

4

0 回答 0