MESCIUS SPREAD for ASP.NET 10.0J > 開発者の手引き > データ操作 > ロードオンデマンド |
SPREADに設定されたデータをオンデマンドでロードできます。大量のデータを一度に読み込むのではなく、指定の行数分のセットを段階的に読み込みます。これにより、アプリケーションのパフォーマンス向上が期待できます。ユーザーのスクロール操作または時間経過といったタイミングで、クライアント側で必要に応じて次のページまたは行セットをロードします。
ロードオンデマンドには、以下の2種類のロード方法があります。
スクロール操作により、ビューから非表示になっている次の行セットをロードします。つまり、行の読み込みはスクロール操作により開始されます。そのため、標準モードのロードオンデマンド機能を使用するには、スクロールバーが表示されている必要があり、コントロールの高さを、最初に表示される行数の高さより小さくする必要があります。既定値は標準モードです。
ユーザー操作を妨げることなく、バックグラウンドで読み込みます。このモードには以下の二つのロード方法があります。
バックグラウンドによるロードオンデマンドでは、行のロード中に他のAjax要求を保留にできます(行のロードによってSpreadがロックされない)。アクションは保留中の要求のキュー内に格納され、後で処理されます。ロードオンデマンドが完了すると、キュー内で保留されている要求は、キュー内が空になるまで、すべて処理されます。
![]() |
階層表示では、ロードオンデマンド機能は無効になります。 |
ロードオンデマンド機能を許可するには、SheetView クラスのAllowLoadOnDemand プロパティをtrueに設定します。また、初期ロード時に読み込む行数およびロードオンデマンド時の増分(行セットに含まれる行数)はそれぞれ、LoadInitRowCount プロパティ、LoadRowIncrement プロパティで設定します。
また、ロードオンデマンド機能を標準モードで使用するには、LoadOnDemandMode プロパティをLoadOnDemandMode.Standardに、バックグラウンドモードで設定するには、LoadOnDemandMode.Background設定します。
バックグランドモードのときの、ロード方法はLoadOnDemandTriggerMode プロパティで設定します。任意の行が表示された最にロードするには、LoadOnDemandTriggerMode.OffsetBasedに、指定の時間間隔でロードするにはLoadOnDemandTriggerMode.Timedにします。時間間隔は、LoadOnDemandInterval プロパティにミリ秒単位で指定します。
ロードオンデマンド機能が開始すると、 LoadRowsStart イベントが発生します。また、行のロードが終了すると、LoadRowsStopped イベントが発生します。
次のサンプルコードは、時間間隔で行セットをロードする機能を設定します。