【クライアント】 クライアント側でSPREADのClientIDプロパティを使用すると、例外(HttpException)が発生する場合がある
対象製品
SPREAD for ASP.NET 7.0J
状況
修正済み
詳細
クライアント側でSPREADのClientIDプロパティを使用すると、例外が発生する場合があります。
【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack Then Return
' コンテキストメニューを有効
FpSpread1.EnableContextMenu = True
' コンテキストメニューの作成
Dim mainMenue As New FarPoint.Web.Spread.ContextMenu()
mainMenue.Type = FarPoint.Web.Spread.ContextMenuType.Viewport
mainMenue.Items.Add(New FarPoint.Web.Spread.MenuItem("コピー"))
mainMenue.Items.Add(New FarPoint.Web.Spread.MenuItem("貼り付け"))
mainMenue.Items.Add(New FarPoint.Web.Spread.MenuItem("クリア"))
FpSpread1.ContextMenus.Add(mainMenue)
End Sub
------------------------------------
クライアント側スクリプト
------------------------------------
window.onload = init;
function init() {
var spread = document.getElementById('<%=FpSpread1.ClientID %>');
spread.SetActiveCell(1, 1);
}
【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack Then Return
' コンテキストメニューを有効
FpSpread1.EnableContextMenu = True
' コンテキストメニューの作成
Dim mainMenue As New FarPoint.Web.Spread.ContextMenu()
mainMenue.Type = FarPoint.Web.Spread.ContextMenuType.Viewport
mainMenue.Items.Add(New FarPoint.Web.Spread.MenuItem("コピー"))
mainMenue.Items.Add(New FarPoint.Web.Spread.MenuItem("貼り付け"))
mainMenue.Items.Add(New FarPoint.Web.Spread.MenuItem("クリア"))
FpSpread1.ContextMenus.Add(mainMenue)
End Sub
------------------------------------
クライアント側スクリプト
------------------------------------
window.onload = init;
function init() {
var spread = document.getElementById('<%=FpSpread1.ClientID %>');
spread.SetActiveCell(1, 1);
}
回避方法
Service Pack 3(v7.0.4017.2010)で修正済み。
Service Pack 3(v7.0.4017.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
ClientIDプロパティを使用せずに直接コントロール名を指定します。
------------------------------------
クライアント側スクリプト
------------------------------------
window.onload = init;
function init() {
var spread = document.getElementById('FpSpread1');
spread.SetActiveCell(1, 1);
}
Service Pack 3(v7.0.4017.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
ClientIDプロパティを使用せずに直接コントロール名を指定します。
------------------------------------
クライアント側スクリプト
------------------------------------
window.onload = init;
function init() {
var spread = document.getElementById('FpSpread1');
spread.SetActiveCell(1, 1);
}