c#combobox根据另一个组合框的值过滤一个组合框

时间:2013-03-21 12:39:33

标签: c# winforms datagridview combobox filter

我有2个表,product_items和category。 和2个组合框。我想在选择的类别之后过滤另一个组合框。 抱歉我的英语不好说话:),我试过这个9h,没有解决方案得到:/ 我的代码我写了多少钱。

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 :/
}

1 个答案:

答案 0 :(得分:1)

不确定,需要测试一下,但是,绑定到第一个组合框的DataView具有RowFilter属性。
将此属性设置为适当的条件应删除不属于当前所选类别的项目

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