電気ウナギ的○○

About Home

VB.NET で ComboBox のリスト項目を編集

shinoda (2015年3月 5日 12:55)
VB.NET で ComboBox のプルダウンリストに項目をセットする方法。

DB のマスタからデータ読み込んできて、そのコードと名前をセットしようとすると、

Me.CodeComboBox.SetBinding(ds.address, "address_code", "address_name")

みたいにバインディングしてしまうのが一番楽だが(これで、プルダウンのところに "コード|名前"のように表示される)、マスタの中身そのままではなく、後ろに「まとめコード」だったり「その他コード」だったり、マスタにないコードを追加したい時がある。

マスタを読み込んだデータセットの最後にレコードを追加してやってから SetBinding するという裏技的なことも可能だが、Null が許されてない項目にダミーの値をセットしたり面倒くさい。

そんな時は、素直にバインディング用の新しいテーブルセットを作って処理する方が結果的に簡単。

Dim codeTbl As New DataTable()
codeTbl.Columns.Add("address_code", GetType(Integer))
codeTbl.Columns.Add("address_name", GetType(String))
Dim row As DataRow = Nothing
For Each dr In ds.address
row = codeTbl.NewRow()
row("address_code") = dr.address_code
row("address_name") = dr.address_name
codeTbl.Rows.Add(row)
Next

' 合計コード(0)の追加
row = codeTbl.NewRow()
row("address_code") = 0
row("address_name") = "合計"
codeTbl.Rows.Add(row)

codeTbl.AcceptChanges()
Me.CodeComboBox.SetBinding(codeTbl, "address_code", "address_name")

これで、無事一番下に 0 の項目が追加される。(FormatString="000" で)

20150305_list.jpg

随分行数は増えるが、コードとして美しい。うっとり。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3345

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE