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
- 有关于这个的文档吗
- 我可以暂时禁用触发器吗
Thanks in advance
我无法使"PerformAutoResize"充分发挥作用。这需要10秒。所以最后我决定滚动我自己的,这是局限于我们的网格配置的特殊使用,它只显示单元格中的文本(而不是子控件),使用图形。每个网格单元的MeasureString函数
大约40行代码,并将时间减少到0.4秒,用于600 x 20的网格
通过Infragistics论坛找到答案:
调用column.PerformAutoResize(PerformAutoSizeType.AllRowsInBand, true)
触发数据源的重新绑定,进而触发initialise_row
。
由于调整大小被调用了多次(每列每带一次),重新绑定失去了控制。
对于信息,我们也有以下问题。对于一年的数据,渲染时间为2分钟:
- 这是一个巨大的网格,单元格被单独设计。使用外观库/工厂将加载时间缩短40秒
- 数据库调优又减少了40秒
- 改变自定义总计行计算的方式,减少15秒(通过使用total var而不是更新单元格) 自动调整大小是一个力量倍增器-使所有其他问题变得更糟。解决这个问题可以节省更多的时间。
希望这对其他有类似问题的人有帮助