【Ajax】【VS2005】AutoPostBack プロパティをTrueに設定した場合、UpdatePanel内に配置したSPREADのセルをクリックするとページ全体が更新される
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
この現象は、Visual Studio 2005を使用した開発環境で発生します
状況
修正済み
詳細
シートのAutoPostBack プロパティをTrueに設定した場合、UpdatePanel内に配置したSPREADのセルをクリックするたびに、ページ全体が更新されます。
【手順】
1.新規WebフォームにUpdatePanelを配置し、UpdatePanel内にSPREADのを配置します。
2.下記サンプルコードをコピーし、アプリケーションを実行します。
3.SPREADのセルをクリックします。
--- ページ全体が更新されます。
※本来は部分更新されるべきです。
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
FpSpread1.ActiveSheetView.AutoPostBack = True
End Sub
【手順】
1.新規WebフォームにUpdatePanelを配置し、UpdatePanel内にSPREADのを配置します。
2.下記サンプルコードをコピーし、アプリケーションを実行します。
3.SPREADのセルをクリックします。
--- ページ全体が更新されます。
※本来は部分更新されるべきです。
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
FpSpread1.ActiveSheetView.AutoPostBack = True
End Sub
回避方法
2009/05/27版で修正済み。
2009/05/27版より前のバージョンでは次の回避方法が有効です。
ScriptManagerのRegisterAsyncPostBackControl メソッドを使用してSPREADをScriptManagerに非同期ポストバックコントロールに登録し、UpdatePanelのUpdate メソッドにて更新します。
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ScriptManager1.RegisterAsyncPostBackControl(FpSpread1)
UpdatePanel1.UpdateMode = UpdatePanelUpdateMode.Conditional
FpSpread1.RenderCSSClass = False
FpSpread1.ActiveSheetView.AutoPostBack = True
End Sub
Protected Sub FpSpread1_CellClick(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.CellClick
Dim p As System.Drawing.Point = CType(e.CommandArgument, System.Drawing.Point)
FpSpread1.ActiveSheetView.Cells(1, 1).Value = "Cell(" + p.X.ToString + "," + p.Y.ToString + ")"
UpdatePanel1.Update()
End Sub
2009/05/27版より前のバージョンでは次の回避方法が有効です。
ScriptManagerのRegisterAsyncPostBackControl メソッドを使用してSPREADをScriptManagerに非同期ポストバックコントロールに登録し、UpdatePanelのUpdate メソッドにて更新します。
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ScriptManager1.RegisterAsyncPostBackControl(FpSpread1)
UpdatePanel1.UpdateMode = UpdatePanelUpdateMode.Conditional
FpSpread1.RenderCSSClass = False
FpSpread1.ActiveSheetView.AutoPostBack = True
End Sub
Protected Sub FpSpread1_CellClick(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.CellClick
Dim p As System.Drawing.Point = CType(e.CommandArgument, System.Drawing.Point)
FpSpread1.ActiveSheetView.Cells(1, 1).Value = "Cell(" + p.X.ToString + "," + p.Y.ToString + ")"
UpdatePanel1.Update()
End Sub
キーワード
SPRN07312
この文書は、以前は次のバグレポートIDで公開されていました : 7944