Sessionを利用した状態管理でブラウザの[戻る]ボタンを押すとSPREADが正しく表示されない

文書番号 : 21823     文書種別 : 使用方法     最終更新日 : 2006/06/23
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
Session変数で使用しているキーが問題を引き起こしている可能性が考えられます。

【VB サンプルコード】
 Session(e.SheetView.SheetName) = e.SheetView.SaveViewState()

上記のようにシート名をキーに使用した場合、もし複数のWebフォームでそれぞれSPREADを配置しSessionを利用した状態管理を行うと、同じキーで情報を格納することになります。そのためシートのステータスを異なるWebフォーム同士で上書きしてしまう可能性があります。

複数のWebフォームでそれぞれSPREADを配置しSession変数を使用した状態管理を行う場合、例えば次のようにWebフォームの名前とSPREADのシート名を組み合わせるなどしてユニークなキーを使用することで対応して下さい。

【VB サンプルコード】
  Private Sub FpSpread1_SaveOrLoadSheetState(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SheetViewStateEventArgs) Handles FpSpread1.SaveOrLoadSheetState
    ''Webフォームの名前をキーに追加します
    Dim strkey As String = "WebForm1" & e.SheetView.SheetName
    If (e.IsSave) Then
      Session(strkey) = e.SheetView.SaveViewState()
    Else
      e.SheetView.LoadViewState(Session(strkey))
    End If
    e.Handled = True
  End Sub
キーワード
外観

この文書は、以前は次のFAQ IDで公開されていました : 9147