【コンボボックス型セル】「&」などの特殊文字を含むリスト項目を選択した場合、セルの値の変更なしにUpdateCommandイベントが発生する
対象製品
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
【手順】
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