GrapeCity MultiRow for Windows Forms 11.0J
データの連結モード

GcMultiRowコントロールは、3つのデータ連結モードをサポートしており、用途に合わせて最適なモードを選択できます。
アンバウンド(非連結)モード
アンバウンド モードは、比較的少量のデータを表示するのに適しています。このモードでは、データソースに直接接続せず、すべてのデータをGcMultiRowコントロール内に保持します。このモードは、表形式のデータを表示専用で提供する場合や、データソースとの接続を独自にコーディングする場合に使用できます。

GcMultiRow.DataSourceプロパティが空で、かつGcMultiRow.VirtualModeプロパティがFalseのとき、GcMultiRowコントロールはアンバウンド モードとして動作します。

アンバウンドモードにおけるデータの操作方法は「データの設定と取得」を参照してください。
バウンドモード
バウンドモードはデータソースに接続し、データの同期と読み書きを行う場合に適しています。このモードでは、すべてのデータはデータソースに保持され、必要に応じてGcMultiRowコントロールの値が自動的に更新されます。GcMultiRowコントロールでデータを変更した場合も、自動的に反映されます。このモードは、一般的なデータベース アプリケーションの構築に使用できます。

GcMultiRow.DataSourceプロパティにデータソースが設定され、かつGcMultiRow.VirtualModeプロパティがFalseのとき、GcMultiRowコントロールはバウンドモードとして動作します。

次のコードでは、バウンドモードでデータソースの値を表示します。

GcMultiRow1.DataSource = myDataSet
GcMultiRow1.DataMember = myDataSet.Tables(0).TableName
gcMultiRow1.DataSource = myDataSet;
gcMultiRow1.DataMember = myDataSet.Tables[0].TableName;

バウンドモードの詳細は「データベースとの連結」を参照してください。
仮想モード
仮想モードは大量のデータを高速に扱う場合に適しています。このモードでは、GcMultiRowコントロールはデータを自動的にグリッドに読み込みません。開発者は、すべてのデータの更新や反映のタイミングをコーディングしてデータの表示や転送を指示します。このモードは、必要最小限のデータのみを保持してパフォーマンスを改善する用途に適しています。

  • 仮想モードが有効のとき、ColumnHeaderCellの組み込みフィルタおよび組み込みソートは動作しません。
  • 仮想モードではGcMultiRow.Sortメソッドを使用できません。

GcMultiRow.VirtualModeプロパティがTrueのとき、GcMultiRowコントロールは仮想モードとして動作します。

仮想モードでは、グリッドにデータが必要になるタイミングでGcMultiRow.CellValueNeededイベントが発生します。このタイミングには、スクロールやフォームの再描画が含まれます。次のコードはGcMultiRow.CellValueNeededイベントを使用してセルの座標を表示します。

Imports GrapeCity.Win.MultiRow

Private Sub Form1_Load( _
    ByVal sender As System.Object, ByVal e As System.EventArgs _
    ) Handles MyBase.Load
    GcMultiRow1.ReadOnly = True
    GcMultiRow1.VirtualMode = True
    GcMultiRow1.RowCount = 1000
End Sub

Private Sub GcMultiRow1_CellValueNeeded( _
    ByVal sender As System.Object, ByVal e As CellValueEventArgs _
    ) Handles GcMultiRow1.CellValueNeeded
    e.Value = String.Format("{0},{1}", e.RowIndex, e.CellIndex)
End Sub
using GrapeCity.Win.MultiRow;

private void Form1_Load(object sender, EventArgs e)
{
    gcMultiRow1.ReadOnly = true;
    gcMultiRow1.VirtualMode = true;
    gcMultiRow1.RowCount = 1000;
}

private void gcMultiRow1_CellValueNeeded(object sender, CellValueEventArgs e)
{
    e.Value = string.Format("{0},{1}", e.RowIndex, e.CellIndex);
}

データの更新が必要となるタイミングにはGcMultiRow.CellValuePushedイベントが発生します。このイベントはユーザーの入力操作や開発者による入力操作で発生します。
   
関連トピック

 

 


© 2008 GrapeCity inc. All rights reserved.