DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridでのコンボについて

環境/言語:[XP NET Frameworkのバージョン(1.0)]
分類:[.NET]

はじめまして。araです。

<VB.NET>
DataGrid上にコンボボックスを表示される方法について
このサイトの「DataGridでComboBoxを使う」を参考にさせていただいたのですが、
以下のような場合がうまく行きません。
どなたかご教授願えないでしょうか。よろしくお願いいたします。



・DataGridComboBoxColumnクラスを使用
・DBからデータを取得(4列)し、最後の列のみコンボボックスの対象としたい。
・表示上、コンボボックスは表示されるが、DBのデータを反映できていない。

(一部抜粋)
      'コード
clmStyle = New DataGridTextBoxColumn()
clmStyle.MappingName = dsView.Tables(0).Columns(0).ColumnName
clmStyle.Width = 70
tblStyle.GridColumnStyles.Add(clmStyle)

'名称
clmStyle = New DataGridTextBoxColumn()
clmStyle.MappingName = dsView.Tables(0).Columns(1).ColumnName
clmStyle.Width = 200
tblStyle.GridColumnStyles.Add(clmStyle)

'DataGridComboBoxColumnの作成
Dim comboSorce As New DataTable("ComboBox")
comboSorce.Columns.Add("DisplayMember", GetType(String))
comboSorce.Columns.Add("ValueMember", GetType(Integer))
comboSorce.Rows.Add(New Object() {"0", 0})
comboSorce.Rows.Add(New Object() {"1", 1})
Dim cbc As New DataGridComboBoxColumn(comboSorce.DefaultView, "DisplayMember", "ValueMember")
cbc.MappingName = dsView.Tables(0).Columns(2).ColumnName
cbc.NullText = ""
cbc.HeaderText = "フラグ"


'列スタイルの追加
tblStyle.GridColumnStyles.Add(cbc)
■No5991に返信(araさんの記事)

 araさん、こんにちは。深山と申します。

> ・表示上、コンボボックスは表示されるが、DBのデータを反映できていない。

 掲載されたコードをそのまま使って実験してみましたけど、こちらでは問題なく DataSet の
値が表示されました。
 データの取得が思い通りにいっていないとか、 DataColumn の DataType が Int32 に
なっていないとか、他の箇所に問題があるような気がします。


 先に提示された情報からはこれ以上なんとも。
> ・DBからデータを取得(4列)し、最後の列のみコンボボックスの対象としたい。
とあるのに
> cbc.MappingName = dsView.Tables(0).Columns(2).ColumnName
3 列目をコンボボックスの対象としている点は少し気になりましたけど。
# 転記ミスの類なのでしょうか?

DOBON.NET | プログラミング道 | プログラミング掲示板