--------------------------------------------------------------- Private Sub cmbBoxMember_SelectedIndexChanged() Dim i As Integer
i = cmbBoxMember.SelectedIndex
Me.BindingContext(dsWork, "TABLE1").CancelCurrentEdit() Me.BindingContext(dsWork, "TABLE1").Position() = i End Sub ---------------------------------------------------------------
分類:[.NET]
VB .netを始めたばかりの初心者です。
datasetに格納されている2つのテーブル(Table1,Table2)に対して、
1.Table1はComboboxにて表示
2.table2はcomboboxにて選択されたデータに対してグリッドで表示
という動きを実現したいと思っています。
また画面load時のデフォルト表示として、table1の2つ目のデータを表示し、
table2もそれに関する子情報を表示したいと思っています。
そこで、Table1とTable2のrelationを結べば出来るかと思い、以下のような
コーディングをしました。
結果、combobox(table1)のデフォルト表示は出来たのですが、
table2のグリッドはtable1の2つ目ではなく、1つ目のデータが表示されます。
またComboboxにて選択をしてもグリッド(Table2)が変化しません。
(Relationを張ればSelectedIndexChangedを意識しなくてもいいのかと
思っていたのですが、そうではないのでしょうか?
初期値の点も含め、この辺りの理解が誤っている気がしています。)
よろしくお願いします。
(ソース)
-------------------------------------------------------------------
'webサービスにてdtworkにTABLE1,TABLE2を取得
dtwork = webservice.getMST_EMPLO()
'リレーション
dtwork.Relations.Add("RELATION_ADD", dtwork.Tables("TABLE1").Columns("COL1"), dtwork.Tables("TABLE2").Columns("COL1"))
'コンボボックスのbinding
cmbBoxMember.DataBindings.Add("SelectedValue", dtwork, "TABLE1.COL1")
cmbBoxMember.DataSource = dtwork.Tables("TABLE1")
cmbBoxMember.DisplayMember = "COL2"
cmbBoxMember.ValueMember = "COL1"
cmbBoxMember.SelectedIndex = 1 :Comboboxの初期表示指定
'グリッドのbinding
DataGrid.SetDataBinding(dtwork, "TABLE1.RELATION_ADD")