inffragistics超网格-缓慢的性能与PerformAutoResize

本文关键字:性能 PerformAutoResize 缓慢 网格 inffragistics | 更新日期: 2023-09-27 18:04:40

我有一个使用超网格的性能很差的代码,但是在跟踪输出上使用D3.js运行可视化分析,我发现grid__InitializeRow多次调用自己。

由:this.grid.InitializeRow += new Infragistics.Win.UltraWinGrid.InitializeRowEventHandler(this.grid_InitializeRow);创建的触发器

问题从以下代码开始:

column.PerformAutoResize(PerformAutoSizeType.AllRowsInBand, true)

搜索网络,我找不到关于这个的信息,但发现了一些可能的竞争者-调用其中任何一个似乎调用initialize row:

  • 网格。数据源
  • grid.Rows.Band.Layout.Bands
  • column.performAutoResize

问题
  1. 有关于这个的文档吗
  2. 我可以暂时禁用触发器吗

Thanks in advance

inffragistics超网格-缓慢的性能与PerformAutoResize

我无法使"PerformAutoResize"充分发挥作用。这需要10秒。所以最后我决定滚动我自己的,这是局限于我们的网格配置的特殊使用,它只显示单元格中的文本(而不是子控件),使用图形。每个网格单元的MeasureString函数

大约40行代码,并将时间减少到0.4秒,用于600 x 20的网格

通过Infragistics论坛找到答案:

调用column.PerformAutoResize(PerformAutoSizeType.AllRowsInBand, true)触发数据源的重新绑定,进而触发initialise_row

由于调整大小被调用了多次(每列每带一次),重新绑定失去了控制。

对于信息,我们也有以下问题。对于一年的数据,渲染时间为2分钟:

  • 这是一个巨大的网格,单元格被单独设计。使用外观库/工厂将加载时间缩短40秒
  • 数据库调优又减少了40秒
  • 改变自定义总计行计算的方式,减少15秒(通过使用total var而不是更新单元格)
  • 自动调整大小是一个力量倍增器-使所有其他问题变得更糟。解决这个问题可以节省更多的时间。

希望这对其他有类似问题的人有帮助