【VS2005】【表示】固定列の列幅を「1」に設定するとスクリプトエラーが発生する場合がある

文書番号 : 24458     文書種別 : 不具合     最終更新日 : 2007/07/28
文書を印刷する
対象製品
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
回避方法
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
キーワード
SPRN06253

この文書は、以前は次のバグレポートIDで公開されていました : 7067