【VS2005】【表示】固定列の列幅を「1」に設定するとスクリプトエラーが発生する場合がある
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
この現象は、Visual Studio 2005を使用した開発環境で発生します
状況
修正済み
詳細
以下のサンプルコードのように、固定列の列幅を「1」に設定するとスクリプトエラーが発生する場合があります。
【サンプルコード】
-------------------------
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.RowCount = 10
FpSpread1.ActiveSheetView.ColumnCount = 10
FpSpread1.ActiveSheetView.FrozenColumnCount = 3
FpSpread1.ActiveSheetView.Columns(2).Width = 1
End Sub
【サンプルコード】
-------------------------
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.RowCount = 10
FpSpread1.ActiveSheetView.ColumnCount = 10
FpSpread1.ActiveSheetView.FrozenColumnCount = 3
FpSpread1.ActiveSheetView.Columns(2).Width = 1
End Sub
回避方法
2007/09/05版で修正済み。
2007/09/05版より前のバージョンでは次の回避方法が有効です。
スクリプトで列幅を設定します。
【サンプルコード】
-------------------------
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.RowCount = 10
FpSpread1.ActiveSheetView.ColumnCount = 10
FpSpread1.ActiveSheetView.FrozenColumnCount = 3
'FpSpread1.ActiveSheetView.Columns(2).Width = 1
' 回避策
Dim Script As String = "" 'スクリプト文
'JavaScript
Script += "<script Language='javascript'>" & vbNewLine
Script += "function window.onload()" & vbNewLine
Script += "{" & vbNewLine
Script += "var spread=document.all(""FpSpread1"");" & vbNewLine
Script += "spread.SetColWidth(" + CStr(2) + ", 1);" & vbNewLine
Script += "}" & vbNewLine
Script += "</script>" & vbNewLine
Dim instance As ClientScriptManager = Page.ClientScript
instance.RegisterClientScriptBlock(Me.GetType(), "clientScript", Script)
End Sub
2007/09/05版より前のバージョンでは次の回避方法が有効です。
スクリプトで列幅を設定します。
【サンプルコード】
-------------------------
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.RowCount = 10
FpSpread1.ActiveSheetView.ColumnCount = 10
FpSpread1.ActiveSheetView.FrozenColumnCount = 3
'FpSpread1.ActiveSheetView.Columns(2).Width = 1
' 回避策
Dim Script As String = "" 'スクリプト文
'JavaScript
Script += "<script Language='javascript'>" & vbNewLine
Script += "function window.onload()" & vbNewLine
Script += "{" & vbNewLine
Script += "var spread=document.all(""FpSpread1"");" & vbNewLine
Script += "spread.SetColWidth(" + CStr(2) + ", 1);" & vbNewLine
Script += "}" & vbNewLine
Script += "</script>" & vbNewLine
Dim instance As ClientScriptManager = Page.ClientScript
instance.RegisterClientScriptBlock(Me.GetType(), "clientScript", Script)
End Sub
キーワード
SPRN06253
この文書は、以前は次のバグレポートIDで公開されていました : 7067