[SPRN06268]【VS2005】【データ連結(ObjectDataSource)】非連結行に数式を設定するとポストバックした際に例外が発生する

文書番号 : 24459     文書種別 : 制限事項     最終更新日 : 2007/07/28
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
この現象は、Visual Studio 2005を使用した開発環境で発生します
詳細
ObjectDataSourceと連結した場合、非連結行を追加し、非連結行に数式を設定するとポストバック時に例外が発生します。

[再現手順]
1.新規WebFormにSPREADとObjectDataSourceとButtonを配置します
2.SPREADとObjectDataSourceを連結させます
3.下記サンプルコードをコピーします
4.アプリケーションを実行し、Buttonを押下します
5.例外が発生します

[サンプルコード]
-------------------------
Webフォームクラス
-------------------------
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    FpSpread1.ActiveSheetView.AddUnboundRows(FpSpread1.ActiveSheetView.RowCount, 1)
    FpSpread1.ActiveSheetView.Cells(FpSpread1.ActiveSheetView.RowCount - 1, 0).Formula = "3 + 5"
  End Sub

  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' Button1 クリックイベント
  End Sub
回避方法
こちらの現象は制限事項となります。
ObjectDataSourceと連結し、非連結行に数式を設定する場合には以下の手順にて行ってください。

1.非連結行の追加、数式の設定はPreRender イベント内で行う
2.非連結行に設定した数式はViewStateに保存しない

[サンプルコード]
-------------------------
Webフォームクラス
-------------------------
  Protected Overrides Function SaveViewState() As Object
    '非連結行の数式をクリアする
    FpSpread1.ActiveSheetView.Cells(FpSpread1.ActiveSheetView.RowCount - 1, 0).Formula = Nothing
    Return MyBase.SaveViewState()
  End Function

  Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    FpSpread1.ActiveSheetView.AddUnboundRows(FpSpread1.ActiveSheetView.RowCount, 1)
    FpSpread1.ActiveSheetView.Cells(FpSpread1.ActiveSheetView.RowCount - 1, 0).Formula = "3 + 5"
  End Sub

  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' Button1 クリックイベント
  End Sub

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