【表示】行を非表示に設定すると列ヘッダの結合の設定が無効になる場合がある
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様。
状況
修正済み
詳細
行を非表示に設定した場合、列ヘッダの結合の設定が無効となることがあります。
下記、再現手順とサンプルコードです。
[再現手順]
1.新規WebフォームにSPREADだけを配置します。
2.下記のサンプルコードをコピーします。
3.アプリケーションを実行します。
4.列ヘッダの結合がされません。
[サンプルコード]
-------------------------
Webフォームクラス
-------------------------
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack Then
Return
End If
FpSpread1.Sheets(0).ColumnHeaderSpanModel.Add(0, 0, 1, 2)
FpSpread1.Rows(0, 1).Visible = False
End Sub
下記、再現手順とサンプルコードです。
[再現手順]
1.新規WebフォームにSPREADだけを配置します。
2.下記のサンプルコードをコピーします。
3.アプリケーションを実行します。
4.列ヘッダの結合がされません。
[サンプルコード]
-------------------------
Webフォームクラス
-------------------------
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack Then
Return
End If
FpSpread1.Sheets(0).ColumnHeaderSpanModel.Add(0, 0, 1, 2)
FpSpread1.Rows(0, 1).Visible = False
End Sub
回避方法
2006/10/15版で修正済み。
それ以前のバージョンでは、次の回避策が有効です。
Render イベント内で列ヘッダの結合を設定してください。
-------------------------
Webフォームクラス
-------------------------
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
If Not FpSpread1.Rows(0).Visible Then
If TypeOf (FpSpread1.FindControl("colHeader").Controls(0)) Is Table Then
'1行1列目のヘッダを2列分連結する
Dim table As Table = FpSpread1.FindControl("colHeader").Controls(0)
table.Rows(0).Cells(0).ColumnSpan = 2
Dim cell As TableCell = table.Rows(0).Cells(1)
'table.Controls.Remove(cell)
table.Rows(0).Cells(1).Visible = False
End If
End If
MyBase.Render(writer)
End Sub
それ以前のバージョンでは、次の回避策が有効です。
Render イベント内で列ヘッダの結合を設定してください。
-------------------------
Webフォームクラス
-------------------------
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
If Not FpSpread1.Rows(0).Visible Then
If TypeOf (FpSpread1.FindControl("colHeader").Controls(0)) Is Table Then
'1行1列目のヘッダを2列分連結する
Dim table As Table = FpSpread1.FindControl("colHeader").Controls(0)
table.Rows(0).Cells(0).ColumnSpan = 2
Dim cell As TableCell = table.Rows(0).Cells(1)
'table.Controls.Remove(cell)
table.Rows(0).Cells(1).Visible = False
End If
End If
MyBase.Render(writer)
End Sub
キーワード
SPRN05685
この文書は、以前は次のバグレポートIDで公開されていました : 6284