在数据网格视图 c# 中筛选数据
本文关键字:数据 筛选 网格 数据网 视图 | 更新日期: 2023-09-27 18:34:35
我正在尝试过滤掉我想要的数据,并隐藏所有其他数据。 这是我的代码列表,
private void searchButton_Click_1(object sender, EventArgs e)
{
BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
bs.Filter = dataGridView1.Columns[1].HeaderText.ToString() + " LIKE '%" + searchTextBox.Text + "%'";
dataGridView1.DataSource = bs;
}
但是当我运行它时,它会提示我错误消息
"'ID'运算符后缺少操作数。">
我也试过这个,同样的错误消息。
private void searchButton_Click_1(object sender, EventArgs e)
{
BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
// bs.Filter = dataGridView1.Columns[1].HeaderText.ToString() + " LIKE '%" + searchTextBox.Text + "%'";
bs.Filter = "Sample ID like '*" + searchTextBox.Text + "*'";
dataGridView1.DataSource = bs;
}
谁能帮我澄清问题?谢谢。
尝试以下
BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
bs.Filter = "[HeaderText] Like '%" + searchTextBox.Text + "%'";
dataGridView1.DataSource = bs;
我将数据源设置为列表并使用 LINQ 筛选数据网格视图。
//Declare Global
List<ProductList> _productList
//Somewhere in code initialize datagridview
DataGridView1.DataSource = _productList
//TextBox TextChanged Function
private void TxtSearchProduct_TextChanged(object sender, EventArgs e)
{
var result = _productList.Where(x =>
x.ProductName.Contains(TxtSearchProduct.Text)).ToList();
DataGridView1.DataSource = result;
}
我希望它有所帮助
尝试以下 ,
BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
bs.Filter = "yourColumnName like '%" + textBox1.Text + "%'";
dataGridView1.DataSource = bs;
或
在"搜索文本框已更改"事件中,请尝试以下操作:
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", searchTextBox.Text);
这个
主题有两种方法:
1 如果您使用的是数据表
bsItems.Filter = "VendorAccount like'*" + txtFilterAccount.Text + "*'";
2 像使用一样使用 ORM您必须创建新列表来存储过滤的数据
lstFilteredVendors = lstVendors.Where(x => x.VendorAccount.Contains(t.Text)).ToList();
bsItems.DataSource = lstFilteredVendors;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells[6].Value.ToString().Contains(textBox1.Text))
{
dataGridView1.Rows[i].Visible = true;
}
else if (dataGridView1.Rows[i].Cells[0].Value.ToString().Contains(textBox1.Text))
{
dataGridView1.Rows[i].Visible = true;
}
else if (dataGridView1.Rows[i].Cells[2].Value.ToString().Contains(textBox1.Text))
{
dataGridView1.Rows[i].Visible = true;
}
else
{
dataGridView1.Rows[i].Visible = false;
}
}