PowerTools SPREAD for ASP.NET 8.0J > 開発者の手引き > 状態管理 > ビューステートに保存 |
ビューステートは、クライアントベースの状態管理機能を実現します。データはページ内の隠しフィールドに書き込まれます。
デフォルトのコントロール設定では、セッションを使用してデータを保存します。 小さなデータ モデルであれば、ビューステートが最適です。 大きなデータセットを使用する場合には、これ以外の状態管理手段を推奨します。
ビューステートを使用する利点は次のとおりです。
ビューステートを使用する欠点は、パフォーマンスに影響が出ることです。 ビューステートはページ自体に保存されるため、大量のデータが保存されると、ユーザーが表示または送信しようとする場合にページの送信速度が遅くなる可能性があります。
データをビューステートに保存するには、SheetView クラスのIsTrackingViewState プロパティをtrueに設定します。既定値はtrueです。また、FpSpread クラスのSaveViewStateToSession プロパティをfalseに設定します。
次のサンプルコードは、ビューステートを使用してデータを保存する方法を示します。
protected void Page_Load(object sender, System.EventArgs e) { if (IsPostBack) return; // OLE DBによってNWIND MS Accessサンプルに接続します。 OleDbConnection thisConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\\NWIND.MDB"); // 接続を開きます。 thisConnection.Open(); // 関連するデータテーブル、行、列を保持するDataSetを作成します。 DataSet thisDataSet = new DataSet(); OleDbDataAdapter orderAdapter = new OleDbDataAdapter("SELECT EmployeeID, LastName, FirstName, Title FROM Employees", thisConnection); orderAdapter.Fill(thisDataSet, "Employees"); FpSpread1.ActiveSheetView.DataSource = thisDataSet; FpSpread1.ActiveSheetView.DataMember = "Employees"; thisConnection.Close(); thisConnection.Dispose(); // データをビューステートに保存します。 FpSpread1.ActiveSheetView.IsTrackingViewState = true; FpSpread1.SaveViewStateToSession = false; }
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If (Me.IsPostBack) Then Return ' OLE DBによってNWIND MS Accessサンプルに接続します。 Dim thisConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\NWIND.MDB") ' 接続を開きます。 thisConnection.Open() ' 関連するデータテーブル、行、列を保持するDataSetを作成します。 Dim thisDataSet As New DataSet() Dim orderAdapter As New OleDbDataAdapter("SELECT EmployeeID, LastName, FirstName, Title FROM Employees", thisConnection) orderAdapter.Fill(thisDataSet, "Employees") FpSpread1.ActiveSheetView.DataSource = thisDataSet FpSpread1.ActiveSheetView.DataMember = "Employees" thisConnection.Close() thisConnection.Dispose() ' データをビューステートに保存します。 FpSpread1.ActiveSheetView.IsTrackingViewState = True FpSpread1.SaveViewStateToSession= False End Sub