Страница: 1 |
Всем Здравствуйте! Пишу на VB.NET (WinForms). Хочу сделать два комбобокса 1 показывает master table 2 показывает detail table Хочу чтобы во 2 высвечивались Child строки в соответствии с выбранной строкой в 1 Допустим связь страна->город в 1 выбрана Украина во 2 только города Украины Помогите пожалуйста а то у меня уже крыша медленно начинает съезжать. За ранее благодарен. ICQ 158275909
в dataset, Relation я прописую. Просто не хочется делать через dataview.rowfilter, хочется использовать relation(как в datagrid) а не знаю как привязаться. Насколько я понимаю, 2 таблицы - в одной страны типа Combo1.Items.Clear Дальше при клике по Combo1 заполняем Combo2. Combo2.Items.Clear Как это уже делаю я Private Sub frm_adress_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ds_adress = load_dataset()'функция которая возвращает датасет с двумя таблицами "v_country" и "v_dataset" и relation "country_city" cb_country.DataSource = ds_adress.Tables("v_country") cb_country.DisplayMember = "name" cb_country.ValueMember = "id" End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb_country.SelectedIndexChanged Dim dv As DataView dv = New DataView(ds_adress.Tables("v_street"), "country_id = '" + cb_country.SelectedValue.ToString + "'", "", Data.DataViewRowState.OriginalRows) cb_city.DataSource = dv cb_city.DisplayMember = "name" cb_city.ValueMember = "id" End Sub Но я не хочу привязываться к конкретным полям таблицы dv = New DataView(ds_adress.Tables("v_street"), "country_id = '" + cb_country.SelectedValue.ToString + "'", "", Data.DataViewRowState.OriginalRows) или пробегать это все в цикле (привязываясь к конкретным полям таблицы)Ваш пример а хочу использовать relation как это делается при master - detail в датагриде DataGrid1.DataSource = ds_adress DataGrid2.DataMember = "v_country" DataGrid2.DataSource = ds_adress DataGrid2.DataMember = "v_country.country_region" Может я много-го хочу, ну хочется сделать всегда как можно лучше За Ваш ответ спасибо! Маленькая опечатка dv = New DataView(ds_adress.Tables("v_street"), "country_id = '" + cb_country.SelectedValue.ToString + "'", "", Data.DataViewRowState.OriginalRows) вместо v_street - V_city dv = New DataView(ds_adress.Tables("v_city"), "country_id = '" + cb_country.SelectedValue.ToString + "'", "", Data.DataViewRowState.OriginalRows) DataGrid2.DataMember = "v_country.country_region" вместо v_country.country_region - v_country.country_city DataGrid2.DataMember = "v_country.country_city" получается никто ответа незнает или не хочет говорить ? Вообщем все такие же незнайки как и я Страница: 1 |
Вопрос: VB.NET master_detail двух combobox_ов
Добавлено: 10.02.03 18:03
Автор вопроса: NEZNAYKA | ICQ: 158275909
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 11.02.03 06:44
Где хранятся данные?
Номер ответа: 2
Автор ответа:
NEZNAYKA
ICQ: 158275909
Вопросов: 5
Ответов: 17
Профиль | | #2
Добавлено: 11.02.03 10:06
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 11.02.03 12:50
ID, Country
В другой города.
ID, CountryID, City
И надо в Combo1 всё из первой таблицы, а в Combo2 города,
соответствующие стране выбранной в Combo1. Если я правльно понял, то
заполняем Combo1 (ds - Dataset с таблицами):
For i=0 to ds.Tables("Countries").Rows.Count-1
Combo1.Items.Add (ds.Tables("Countries").Rows(i).Item("Country"))
Next
For i=0 to ds.Tables("Cities").Rows.Count-1
If ds.Tables("Countries").Rows(i).Item("CountryID")=Combo1.SelectedIndex Then
Combo1.Items.Add (ds.Tables("Cities").Rows(i).Item("City"))
End If
Next
Номер ответа: 4
Автор ответа:
NEZNAYKA
ICQ: 158275909
Вопросов: 5
Ответов: 17
Профиль | | #4
Добавлено: 11.02.03 14:02
Номер ответа: 5
Автор ответа:
NEZNAYKA
ICQ: 158275909
Вопросов: 5
Ответов: 17
Профиль | | #5
Добавлено: 11.02.03 14:06
Номер ответа: 6
Автор ответа:
NEZNAYKA
ICQ: 158275909
Вопросов: 5
Ответов: 17
Профиль | | #6
Добавлено: 12.02.03 13:58