在两个文本框的输入上过滤datagridview

时间:2013-06-27 07:22:24

标签: c# datagridview datagridviewcolumn

这就是我想要的......:

DataView dv = new DataView(table);
dv.RowFilter = String.Format("model like '%{0}%'", textBox2.Text);
if (!String.IsNullOrEmpty(textBox1.Text))
{
   dv.RowFilter = String.Format("vendor like '%{0}%'", textBox1.Text);
}

purchase_mobile_DG.DataSource = dv;

其中table是数据表,其中包含来自数据库的所有数据....我有两个文本框,所以我想要做的是,当我输入第一个文本框时,它会过滤datagridview,然后我写入第二个文本框文本框它从第一个文本框的过滤后的数据网格视图中过滤数据

2 个答案:

答案 0 :(得分:2)

你应该将我编辑过的代码用作

DataView dv = new DataView(table);
if (!String.IsNullOrEmpty(textBox1.Text))
{
   dv.RowFilter = String.Format("vendor like '%{0}%'", textBox1.Text);
}

dv.RowFilter = dv.RowFilter == "" ? String.Format("model like '%{0}%'", textBox2.Text) : dv.RowFilter + String.Format("AND model like '%{0}%'", textBox2.Text);

purchase_mobile_DG.DataSource = dv;

答案 1 :(得分:1)

试试这个:

var dv = new DataView(table);

dv.RowFilter = String.IsNullOrEmpty(vendorTextBox.Text)
             ? ""
             : String.Format("vendor like '%{0}%' and (model like '%{1}%' or '{1}' = '')", vendorTextBox.Text, modelTextBox.Text);

purchase_mobile_DG.DataSource = dv;

另外,请将控件命名为“vendorTextBox”和“modelTextBox”