【スクリプト】onActiveCellChangingの引数「event.row」で、子階層の新しいアクティブセルの行インデックスを正しく取得できない
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
子階層のアクティブセルが変更する際にonActiveCellChanging イベントが発生します。
このときのonActiveCellChanging イベントの引数「event.row」で、新しいアクティブセルの行インデックスを正しく取得できません。
【手順】
1.新規WebフォームにSPREADのみを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.子階層A3セルをクリックします
4.onActiveCellChanging イベントの引数「event.row」が「-1」で取得されます
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack Then
Return
End If
Dim ds As New Data.DataSet
ds.Tables.Add("t1")
ds.Tables.Add("t2")
With ds.Tables("t1")
.Columns.Add("c1")
.Columns.Add("c2")
.Rows.Add(New Object() {"1", "a"})
End With
With ds.Tables("t2")
.Columns.Add("c1")
.Columns.Add("c2")
.Rows.Add(New Object() {"1", "b"})
.Rows.Add(New Object() {"1", "a"})
.Rows.Add(New Object() {"1", "c"})
End With
ds.Relations.Add("rel1", ds.Tables("t1").Columns("c1"), ds.Tables("t2").Columns("c1"), False)
FpSpread1.DataSource = ds
FpSpread1.ActiveSheetView.ExpandRow(-1, True)
End Sub
-------------------------
クライアント側スクリプト
-------------------------
<script type="text/javascript">
function window.onload()
{
var spread = document.getElementById("FpSpread1");
spread.onActiveCellChanging = ac;
}
function ac()
{
var s = event.spread;
var cs = s.GetChildSpread(event.row);
if(cs == null)
{
alert("ChildSpread(" + event.row + "," + event.col + ")");
}
else
{
alert("ParentSpread(" + event.row + "," + event.col + ")");
}
}
</script>
このときのonActiveCellChanging イベントの引数「event.row」で、新しいアクティブセルの行インデックスを正しく取得できません。
【手順】
1.新規WebフォームにSPREADのみを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.子階層A3セルをクリックします
4.onActiveCellChanging イベントの引数「event.row」が「-1」で取得されます
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack Then
Return
End If
Dim ds As New Data.DataSet
ds.Tables.Add("t1")
ds.Tables.Add("t2")
With ds.Tables("t1")
.Columns.Add("c1")
.Columns.Add("c2")
.Rows.Add(New Object() {"1", "a"})
End With
With ds.Tables("t2")
.Columns.Add("c1")
.Columns.Add("c2")
.Rows.Add(New Object() {"1", "b"})
.Rows.Add(New Object() {"1", "a"})
.Rows.Add(New Object() {"1", "c"})
End With
ds.Relations.Add("rel1", ds.Tables("t1").Columns("c1"), ds.Tables("t2").Columns("c1"), False)
FpSpread1.DataSource = ds
FpSpread1.ActiveSheetView.ExpandRow(-1, True)
End Sub
-------------------------
クライアント側スクリプト
-------------------------
<script type="text/javascript">
function window.onload()
{
var spread = document.getElementById("FpSpread1");
spread.onActiveCellChanging = ac;
}
function ac()
{
var s = event.spread;
var cs = s.GetChildSpread(event.row);
if(cs == null)
{
alert("ChildSpread(" + event.row + "," + event.col + ")");
}
else
{
alert("ParentSpread(" + event.row + "," + event.col + ")");
}
}
</script>
回避方法
2008/08/27版で修正済み。
キーワード
SPRN06902
この文書は、以前は次のバグレポートIDで公開されていました : 7578