zoukankan      html  css  js  c++  java
  • 如何提升在使用DevExpress 系列DataGrid的性能问题

    通常我们需要成批在绑定的时候更新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里面有讲到这个方法.

  • 相关阅读:
    safari调试iphone
    git 本地仓库关联远程仓库
    video 自动播放及循环播放问题
    webpack4系列之【3. webpack4优化记录】
    展示博客
    第三天冲刺
    第二天冲刺
    第一天冲刺
    UML设计
    Alpha项目冲刺
  • 原文地址:https://www.cnblogs.com/wildfish/p/400587.html
Copyright © 2011-2022 走看看