作成日: 2026/09/10 最終更新日: 2026/09/10
文書種別
不具合
発生環境
.NET 10
状況
回避方法あり
詳細
2026J v1 へアップグレード後、FlexGrid の DataMap を設定した String 型列において、GetData() メソッドを実行すると、 DataMap のキー値ではなく表示値を返します。
列の DataType を String に設定し DataMap を割り当てた状態で、ドロップダウンから項目を選択します。 その状態で、 GetData() や grid[row, col] を実行して セルの内容を取得すると、 DataMap の表示値(Value)を返します。
列の DataType を String に設定し DataMap を割り当てた状態で、ドロップダウンから項目を選択します。 その状態で、 GetData() や grid[row, col] を実行して セルの内容を取得すると、 DataMap の表示値(Value)を返します。
回避方法
GetDataメソッドの代わりに、DataMapをIDictionaryとして参照し、ValueからKeyに逆変換した値を使用してください。
◎サンプルコード(VB)
Dim map As IDictionary = DirectCast(grid.Cols(e.Col).DataMap, IDictionary)
Dim displayValue As Object = grid(e.Row, e.Col)
Dim keyDM As Object = Nothing
For Each item As DictionaryEntry In map
If Equals(item.Value, displayValue) Then
keyDM = item.Key
Exit For
End If
Next◎サンプルコード(C#)
IDictionary map = grid.Cols[e.Col].DataMap;
object displayValue = grid[e.Row, e.Col];
object keyDM = null;
foreach (DictionaryEntry item in map)
{
if (Equals(item.Value, displayValue))
{
keyDM = item.Key;
break;
}
}