【クライアント】上下矢印キーでコンボボックス型セルの値を変更すると、onDataChanged イベント内で編集した値が取得できない場合がある

文書番号 : 26143     文書種別 : 不具合     最終更新日 : 2008/08/13
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
編集中のコンボボックス型セルでは[Alt + ↓]キーでドロップダウンリストを開き、上下矢印キーで値を変更することができます。
この際、[Enter]キーを押下してセルの値を確定した場合、onDataChanged イベント内で編集する前の値が取得されます。

【手順】
1.新規WebフォームにSPREADのみを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.A1セルをクリックします
4.[Tab]キーを押下してB1セルに移動します
5.[Space]キーを押下して編集状態にした後、[Alt + ↓]キーでドロップダウンリストを開きます
6.上下矢印キー項目を変更し、[Enter]キーを押下して値を確定します
7.onDataChanged イベントが発生し、編集前の値が取得されます

【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If IsPostBack Then
    Return
  End If

  Dim cbstr As String()
  cbstr = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
  Dim cmbbx As New FarPoint.Web.Spread.ComboBoxCellType(cbstr)
  cmbbx.ShowButton = True
  FpSpread1.ActiveSheetView.Columns(1).CellType = cmbbx
End Sub

-------------------------
クライアント側スクリプト
-------------------------
<script type="text/javascript">
  window.onload=init;
  
  function init()
  {
    var spread = document.getElementById("FpSpread1");
    
    if(document.all)
    {
      spread.onDataChanged = dataChanged;
    }
    else
    {
      spread.addEventListener("DataChanged",dataChanged,false);
    }
  }
  function dataChanged(e)
  {
    var e = e || window.event;
    alert(e.cellValue);
  }
</script>
回避方法
2008/08/27版で修正済み。
キーワード
SPRN06884

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