【ボタン型セル】 ボタン型セルが設定されたシート上で、コールバック/ポストバックを連続で実行するとIEが強制終了する場合がある
対象製品
SPREAD for ASP.NET 7.0J
発生環境
Internet Explorerの互換表示
状況
修正済み
詳細
ボタン型セルが設定されたシート上で、コールバック/ポストバックを連続で実行するとIEが強制終了する場合があります。
本現象はInternet Explorerの互換表示でのみ発生します。
【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Page.IsPostBack Then Return
Dim ct As New FarPoint.Web.Spread.ButtonCellType()
ct.ImageUrl = "image.png"
ct.ButtonType = FarPoint.Web.Spread.ButtonType.ImageButton
FpSpread1.ActiveSheetView.Columns(0).CellType = ct
FpSpread1.ActiveSheetView.PageSize = 100
End Sub
------------------------------------
クライアント側スクリプト
------------------------------------
function test1() {
var objSpread = document.getElementById("FpSpread1");
objSpread.Add();
}
function test2() {
var objSpread = document.getElementById("FpSpread1");
objSpread.Delete();
}
------------------------------------
aspxファイル
------------------------------------
<input type="button" id="Button1" value="追加" onclick="test1();" />
<input type="button" id="Button2" value="削除" onclick="test2();" />
【再現手順】
1.プロジェクトを起動します
2.標準のボタン1を連続で押下しコールバックを行います
-- IEが強制終了する場合があります
本現象はInternet Explorerの互換表示でのみ発生します。
【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Page.IsPostBack Then Return
Dim ct As New FarPoint.Web.Spread.ButtonCellType()
ct.ImageUrl = "image.png"
ct.ButtonType = FarPoint.Web.Spread.ButtonType.ImageButton
FpSpread1.ActiveSheetView.Columns(0).CellType = ct
FpSpread1.ActiveSheetView.PageSize = 100
End Sub
------------------------------------
クライアント側スクリプト
------------------------------------
function test1() {
var objSpread = document.getElementById("FpSpread1");
objSpread.Add();
}
function test2() {
var objSpread = document.getElementById("FpSpread1");
objSpread.Delete();
}
------------------------------------
aspxファイル
------------------------------------
<input type="button" id="Button1" value="追加" onclick="test1();" />
<input type="button" id="Button2" value="削除" onclick="test2();" />
【再現手順】
1.プロジェクトを起動します
2.標準のボタン1を連続で押下しコールバックを行います
-- IEが強制終了する場合があります
回避方法
Service Pack 3(v7.0.4017.2010)で修正済み。
Service Pack 3(v7.0.4017.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
カスタムセルを作成し不要なスクリプトファイルのダウンロードを抑制します。
Partial Class Main2
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then Return
Dim ct As New MyButtonCelltype()
ct.ImageUrl = "image.png"
ct.ButtonType = FarPoint.Web.Spread.ButtonType.ImageButton
FpSpread1.Sheets(0).Columns(0).CellType = ct
End Sub
<Serializable()> _
Class MyButtonCelltype
Inherits FarPoint.Web.Spread.ButtonCellType
Public Overrides ReadOnly Property RendererClientScriptUrl As String
Get
Return String.Empty
End Get
End Property
End Class
Service Pack 3(v7.0.4017.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
カスタムセルを作成し不要なスクリプトファイルのダウンロードを抑制します。
Partial Class Main2
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then Return
Dim ct As New MyButtonCelltype()
ct.ImageUrl = "image.png"
ct.ButtonType = FarPoint.Web.Spread.ButtonType.ImageButton
FpSpread1.Sheets(0).Columns(0).CellType = ct
End Sub
<Serializable()> _
Class MyButtonCelltype
Inherits FarPoint.Web.Spread.ButtonCellType
Public Overrides ReadOnly Property RendererClientScriptUrl As String
Get
Return String.Empty
End Get
End Property
End Class