【コンボボックス型セル】「&」などの特殊文字を含むリスト項目を選択した場合、セルの値の変更なしにUpdateCommandイベントが発生する

文書番号 : 26569     文書種別 : 不具合     最終更新日 : 2008/12/10
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
コンボボックス型セルで「&」などの特殊文字を含むリスト項目を選択した場合、セルの値を変更しなくとも、コマンドバーの更新ボタンの押下やSaveChanges メソッドの実行のたびにUpdateCommandイベントが発生します。

【手順】
1.新規WebフォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.A1セルで「B&B」を選択します
4.ボタンを押下してポストバックします
5.UpdateCommandイベントが2回発生します

【サンプルコード】
-------------------------
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 cb As New FarPoint.Web.Spread.ComboBoxCellType

    cb.Items = New String() {"", "AA", "B&B", "CC"}
    cb.Values = New String() {"00", "aaa", "bbb", "ccc"}
    cb.ShowButton = True    
    FpSpread1.ActiveSheetView.Columns(0).CellType = cb

    FpSpread1.ActiveSheetView.Cells(1, 0).Value = "aaa"
    FpSpread1.ActiveSheetView.Cells(2, 0).Value = "bbb"
  End Sub

  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    FpSpread1.SaveChanges()
  End Sub

  Private Sub FpSpread1_UpdateCommand(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.UpdateCommand
    Dim i As Integer
    For i = 0 To e.EditValues.Count - 1
      If Not Object.ReferenceEquals(e.EditValues.Item(i), FarPoint.Web.Spread.FpSpread.Unchanged) Then
        System.Diagnostics.Debug.WriteLine("Cell(" + Convert.ToString(Convert.ToInt32(e.CommandArgument)) + "," + i.ToString() + ") is changed")
      End If
    Next
  End Sub
回避方法
2009/05/27版で修正済み。
キーワード
SPRN07085

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