如何提升在使用DevExpress 系列DataGrid的性能问题
2006-05-15 15:39
579 查看
通常我们需要成批在绑定的时候更新Grid里面的数据.
这时候两个方法尤其重要.
BeginUpdate();
EndUpdate();
这两个方法可以减少很多不必要的时间.
For ex:
改正前
PrintTicks("全选开始");
DevExpress.Data.ColumnSortOrder sortOrder = xtraGridView.Columns["colSelect"].SortOrder;
xtraGridView.Columns["colSelect"].SortOrder = DevExpress.Data.ColumnSortOrder.None;
xtraGridView.CloseEditor();
xtraGridView.UpdateCurrentRow();
//全选
int intRowCount = xtraGridView.RowCount;
for (int i = 0; i < intRowCount; i ++)
{
//取选择列并赋值
xtraGridView.GetDataRow(i)["colSelect"] = true;
}
xtraGridView.CloseEditor();
xtraGridView.UpdateCurrentRow();
xtraGridView.Columns["colSelect"].SortOrder = sortOrder;
PrintTicks("全选结束");
=================================================
调整后
PrintTicks("全选开始");
int intRowCount = xtraGridView.RowCount;
//全选
//启动批量更新
xtraGridView.BeginUpdate();
for (int i = 0; i < intRowCount; i ++)
{
//取选择列并赋值
xtraGridView.GetDataRow(i)["colSelect"] = true;
}
//结束批量更新
xtraGridView.EndUpdate();
PrintTicks("全选结束");
性能差异:
在Grid里面有100条以上的时候,第一种方法需要大概50秒,第二种方法用1秒.
在SDK里面有讲到这个方法.
_uacct = "UA-269503-5";
urchinTracker();
这时候两个方法尤其重要.
BeginUpdate();
EndUpdate();
这两个方法可以减少很多不必要的时间.
For ex:
改正前
PrintTicks("全选开始");
DevExpress.Data.ColumnSortOrder sortOrder = xtraGridView.Columns["colSelect"].SortOrder;
xtraGridView.Columns["colSelect"].SortOrder = DevExpress.Data.ColumnSortOrder.None;
xtraGridView.CloseEditor();
xtraGridView.UpdateCurrentRow();
//全选
int intRowCount = xtraGridView.RowCount;
for (int i = 0; i < intRowCount; i ++)
{
//取选择列并赋值
xtraGridView.GetDataRow(i)["colSelect"] = true;
}
xtraGridView.CloseEditor();
xtraGridView.UpdateCurrentRow();
xtraGridView.Columns["colSelect"].SortOrder = sortOrder;
PrintTicks("全选结束");
=================================================
调整后
PrintTicks("全选开始");
int intRowCount = xtraGridView.RowCount;
//全选
//启动批量更新
xtraGridView.BeginUpdate();
for (int i = 0; i < intRowCount; i ++)
{
//取选择列并赋值
xtraGridView.GetDataRow(i)["colSelect"] = true;
}
//结束批量更新
xtraGridView.EndUpdate();
PrintTicks("全选结束");
性能差异:
在Grid里面有100条以上的时候,第一种方法需要大概50秒,第二种方法用1秒.
在SDK里面有讲到这个方法.
_uacct = "UA-269503-5";
urchinTracker();
相关文章推荐
- 使用Spring+Ibatis的项目,关于如何使用事务、如何提升性能的几点总结
- MySQL如何避免使用Linux的swap分区而提升读写性能
- win7系统如何提升性能?win7使用技巧介绍
- 使用原始的Titanic数据,通过特征筛选,一步步提升性能(特征如何提取)
- 常见问题:如何使用AWR报告来诊断数据库性能问题 (文档 ID 1523048.1)
- 使用静态busybox 性能提升, 确一直coredump 的问题
- 常见问题:如何使用AWR报告来诊断数据库性能问题 (文档 ID 1523048.1)
- 常见问题:如何使用AWR报告来诊断数据库性能问题 (文档 ID 1523048.1)
- Java - 使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?
- 提升html5的性能体验系列之四使用原生ui
- 去哪儿网大数据流处理系统:如何使用Alluxio(前 Tachyon)实现10倍性能提升
- 【插件式框架探索系列】使用多UI线程提升性能
- 如何书写高质量jQuery代码(使用jquery性能问题)
- 如何书写高质量jQuery代码(使用jquery性能问题)
- Android2.2,2.3,4.0 中如何使用GPU硬件加速原理 和游戏3D性能的提升
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- 使用 Unity 开发 Android 游戏时如何追踪性能问题
- 如何使用 Hadoop 提升 Hive 查询性能
- PHP应用系列之一:使用操作码缓存软件提升性能和吞吐量
- 使用Spring+Ibatis的项目,关于如何使用事务、如何提升性能的几点总结