【フィルタリング】状態管理にセッションを使用した場合、フィルタリングを行った後に行を追加すると例外が発生する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
状態管理にセッションを使用した場合、フィルタリングを行った後に行を追加すると例外が発生します。
[再現手順]
1.新規WebフォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーします
3.アプリケーションを実行します
4.2列目の列ヘッダで「2」を選択してフィルタリングを行います
5.Buttonを押下すると例外(System.IndexOutOfRangeException)が発生します
[サンプルコード]
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
Return
End If
FpSpread1.ActiveSheetView.Cells(2, 1).Value = 2
Dim fcd As New FarPoint.Web.Spread.FilterColumnDefinition(1, FarPoint.Web.Spread.FilterListBehavior.SortByMostOccurrences Or FarPoint.Web.Spread.FilterListBehavior.Default)
Dim hf As New FarPoint.Web.Spread.HideRowFilter(FpSpread1.Sheets(0))
hf.AddColumn(fcd)
FpSpread1.Sheets(0).RowFilter = hf
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
FpSpread1.ActiveSheetView.AddRows(0, 1)
End Sub
Protected Sub FpSpread1_SaveOrLoadSheetState(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SheetViewStateEventArgs) Handles FpSpread1.SaveOrLoadSheetState
If e.IsSave Then
Session("SPREAD_VIEW_STATE") = e.SheetView.SaveViewState
Else
e.SheetView.LoadViewState(Session("SPREAD_VIEW_STATE"))
End If
e.Handled = True
End Sub
[再現手順]
1.新規WebフォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーします
3.アプリケーションを実行します
4.2列目の列ヘッダで「2」を選択してフィルタリングを行います
5.Buttonを押下すると例外(System.IndexOutOfRangeException)が発生します
[サンプルコード]
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
Return
End If
FpSpread1.ActiveSheetView.Cells(2, 1).Value = 2
Dim fcd As New FarPoint.Web.Spread.FilterColumnDefinition(1, FarPoint.Web.Spread.FilterListBehavior.SortByMostOccurrences Or FarPoint.Web.Spread.FilterListBehavior.Default)
Dim hf As New FarPoint.Web.Spread.HideRowFilter(FpSpread1.Sheets(0))
hf.AddColumn(fcd)
FpSpread1.Sheets(0).RowFilter = hf
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
FpSpread1.ActiveSheetView.AddRows(0, 1)
End Sub
Protected Sub FpSpread1_SaveOrLoadSheetState(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SheetViewStateEventArgs) Handles FpSpread1.SaveOrLoadSheetState
If e.IsSave Then
Session("SPREAD_VIEW_STATE") = e.SheetView.SaveViewState
Else
e.SheetView.LoadViewState(Session("SPREAD_VIEW_STATE"))
End If
e.Handled = True
End Sub
回避方法
2007/09/05版で修正済み。
キーワード
SPRN06098
この文書は、以前は次のバグレポートIDで公開されていました : 6833