作成日: 2023/08/29 最終更新日: 2023/08/29
文書種別
使用方法
詳細
大量データをFlexGridにロードする時間を、仮想モードと通常モードで比較した結果を以下に示します。
※100万件のデータの場合。Stopwatchを使って計測
通常モードではすべてのデータがグリッドに一度にロードされますが、仮想モードでは表示に必要なサイズのデータのみがオンデマンドでロードされるため、短時間で初期表示が行われます。
なお参考として、現在の行を最終行に移動したときの表示時間も示しています。
※仮想モードは、本記事末尾の「関連情報」で紹介した方法(C1.DataCollectionアセンブリのC1VirtualDataCollectionクラスを使用)を用いて実装しています。
一方通常モードは、「関連情報」の方法で定義しているCustomerクラスのデータを、以下のようなコードでそのままDataSourceに設定しています。

本ナレッジに、検証に用いたサンプルプロジェクト(C#のみ)を添付しますので、動作をご確認ください。
◎添付ファイル:prj_C1FlexGrid_VirtualMode03.zip
※100万件のデータの場合。Stopwatchを使って計測
| 初期表示時間 | 最終行への移動 | |
| 仮想モード | 0秒 362ミリ秒 | 0秒 7ミリ秒 |
| 通常モード | 6秒 116ミリ秒 | 0秒 6ミリ秒 |
通常モードではすべてのデータがグリッドに一度にロードされますが、仮想モードでは表示に必要なサイズのデータのみがオンデマンドでロードされるため、短時間で初期表示が行われます。
なお参考として、現在の行を最終行に移動したときの表示時間も示しています。
※仮想モードは、本記事末尾の「関連情報」で紹介した方法(C1.DataCollectionアセンブリのC1VirtualDataCollectionクラスを使用)を用いて実装しています。
一方通常モードは、「関連情報」の方法で定義しているCustomerクラスのデータを、以下のようなコードでそのままDataSourceに設定しています。
int totalCount1 = 1000000;
List obj1 = new List();
for (int i = 0; i < totalCount1; i++)
{
Customer customer1 = new Customer(i);
obj1.Add(customer1);
}
c1FlexGrid1.DataSource = obj1;
本ナレッジに、検証に用いたサンプルプロジェクト(C#のみ)を添付しますので、動作をご確認ください。
◎添付ファイル:prj_C1FlexGrid_VirtualMode03.zip