2013-03-21 4 views
1

У меня есть 2 таблицы, product_items и категория. И 2 combobox. Я хочу фильтровать еще одно combobox после выбранной категории. Извините за мой плохой английский разговор :), я пробовал это 9 часов, и никакое решение не получало:/ Мой код, сколько я получил.C# combobox filtering one combobox на основе значения другого combobox

DataSet ds = new DataSet(); 
      SqlDataAdapter da = new SqlDataAdapter("select itemid, itemname, pcatid from produkti_items_tab", TestConnection); 
      da.Fill(ds, "FillDropDown"); 

      comboBox1.DataSource = ds.Tables["FillDropDown"].DefaultView; 
      comboBox1.DisplayMember = "itemname"; 
      comboBox1.ValueMember = "itemid"; 

      //============================================ 
      DataSet ddd = new DataSet(); 
      SqlDataAdapter dada = new SqlDataAdapter("select pcatid, pcatname from produkti_cat_tab", TestConnection); 
      dada.Fill(ddd, "FillDropDownzzz"); 

      comboBox2.DataSource = ddd.Tables["FillDropDownzzz"].DefaultView; 
      comboBox2.DisplayMember = "pcatname"; 
      comboBox2.ValueMember = "pcatid"; 

Но я не знаю, что я должен написать здесь:

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //how filter :/ 
} 
+0

, на котором условие вы хотите отфильтровать другой выпадающий? – Mogli

+0

Можете ли вы дать нам лучшее объяснение того, чего вы действительно хотите достичь? – Max

ответ

1

Не уверен, нужно проверить это, но, то DataView переплетены с первым списком имеет свойство RowFilter.
Установка этого свойства в надлежащем состоянии должны удалить те элементы, которые не относятся к текущей выбранной категории

if(comboBox2.SelectedValue != null) 
{ 
    DataView dv = comboBox1.DataSource as DataView; 
    dv.RowFilter = "pcatid = " + comboBox2.SelectedValue.ToString(); 
} 
+0

Почти работа :). Когда я нажимаю кнопку изменения, он действительно фильтрует. Но проблема заключается в загрузке формы. Я получаю ошибку (не могу найти столбец [system.data.DataRowView]) – user2182959

+0

После этой ошибки, когда загрузка формы i mannualy меняет combobox, она действительно фильтрует. Но при загрузке формы, теперь я получаю ошибку. ComboBox при загрузке формы показывает первую категорию, а фильтр при запуске не фильтрует только после изменения mannyaly. – user2182959

+0

Ну, нужно увидеть код в событии form_load. – Steve

Смежные вопросы