【スクリプト】onActiveCellChangingの引数「event.row」で、子階層の新しいアクティブセルの行インデックスを正しく取得できない

文書番号 : 26037     文書種別 : 不具合     最終更新日 : 2008/07/16
文書を印刷する
対象製品
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>
回避方法
2008/08/27版で修正済み。
キーワード
SPRN06902

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