【IE7】【階層】子階層を展開し、親階層の列幅を変更するとスクリプトエラーが発生する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
Internet Explorer 7.0
状況
修正済み
詳細
Internet Explorer 7.0を使用した場合、子階層を展開し、親階層の列幅の変更するとスクリプトエラーが発生します。
Internet Explorer 6.0では発生しない現象です。
【再現手順】
1.新規WebフォームにSPREADを配置します
2.下記サンプルコードをコピーします
3.アプリケーションを実行します
4.1行目の行ヘッダの「+」ボタンを押下して子階層を展開します
5.親階層の2列目の列幅を変更します
6.スクリプトエラーが発生します
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
Return
End If
Dim myDataSet As New Data.DataSet
Dim fpParent As Data.DataTable
Dim fpChild As Data.DataTable
fpParent = myDataSet.Tables.Add("親")
fpParent.Columns.AddRange(New Data.DataColumn() {New Data.DataColumn("A", Type.GetType("System.String")), New Data.DataColumn("B", Type.GetType("System.String")), New Data.DataColumn("id", Type.GetType("System.Int32"))})
fpParent.Rows.Add(New Object() {"親A1", "親B1", 0})
fpParent.Rows.Add(New Object() {"親A2", "親B2", 1})
fpChild = myDataSet.Tables.Add("子")
fpChild.Columns.AddRange(New Data.DataColumn() {New Data.DataColumn("A", Type.GetType("System.String")), New Data.DataColumn("B", Type.GetType("System.String")), New Data.DataColumn("owner", Type.GetType("System.Int32"))})
' 最初の行を追加
fpChild.Rows.Add(New Object() {"親A1-子A1", "親A1-子B1", 0})
fpChild.Rows.Add(New Object() {"親A1-子A2", "親A1-子B2", 0})
' 2番目の行を追加
fpChild.Rows.Add(New Object() {"親A2-子A1", "親A2-子B1", 1})
fpChild.Rows.Add(New Object() {"親A2-子A2", "親A2-子B2", 1})
' リレーションシップを設定
myDataSet.Relations.Add("階層", fpParent.Columns("id"), fpChild.Columns("owner"))
FpSpread1.HierarchicalView = True
FpSpread1.ActiveSheetView.DataSource = myDataSet
FpSpread1.ActiveSheetView.DataMember = "親"
' ID列は非表示
FpSpread1.ActiveSheetView.Columns(2).Visible = False
End Sub
Internet Explorer 6.0では発生しない現象です。
【再現手順】
1.新規WebフォームにSPREADを配置します
2.下記サンプルコードをコピーします
3.アプリケーションを実行します
4.1行目の行ヘッダの「+」ボタンを押下して子階層を展開します
5.親階層の2列目の列幅を変更します
6.スクリプトエラーが発生します
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
Return
End If
Dim myDataSet As New Data.DataSet
Dim fpParent As Data.DataTable
Dim fpChild As Data.DataTable
fpParent = myDataSet.Tables.Add("親")
fpParent.Columns.AddRange(New Data.DataColumn() {New Data.DataColumn("A", Type.GetType("System.String")), New Data.DataColumn("B", Type.GetType("System.String")), New Data.DataColumn("id", Type.GetType("System.Int32"))})
fpParent.Rows.Add(New Object() {"親A1", "親B1", 0})
fpParent.Rows.Add(New Object() {"親A2", "親B2", 1})
fpChild = myDataSet.Tables.Add("子")
fpChild.Columns.AddRange(New Data.DataColumn() {New Data.DataColumn("A", Type.GetType("System.String")), New Data.DataColumn("B", Type.GetType("System.String")), New Data.DataColumn("owner", Type.GetType("System.Int32"))})
' 最初の行を追加
fpChild.Rows.Add(New Object() {"親A1-子A1", "親A1-子B1", 0})
fpChild.Rows.Add(New Object() {"親A1-子A2", "親A1-子B2", 0})
' 2番目の行を追加
fpChild.Rows.Add(New Object() {"親A2-子A1", "親A2-子B1", 1})
fpChild.Rows.Add(New Object() {"親A2-子A2", "親A2-子B2", 1})
' リレーションシップを設定
myDataSet.Relations.Add("階層", fpParent.Columns("id"), fpChild.Columns("owner"))
FpSpread1.HierarchicalView = True
FpSpread1.ActiveSheetView.DataSource = myDataSet
FpSpread1.ActiveSheetView.DataMember = "親"
' ID列は非表示
FpSpread1.ActiveSheetView.Columns(2).Visible = False
End Sub
回避方法
2007/09/05版で修正済み。
キーワード
SPRN06138
この文書は、以前は次のバグレポートIDで公開されていました : 6888