0
我想通过使用DefaultView.RowFilter过滤我的Datagridview,并且当前可以轻松地通过单个单词对列表进行排序。我的问题是如何通过多个词来过滤它。下面是一个例子通过多个键或单词过滤DataGridView
我的datagridview将包括:
1托皮卡
2曼哈顿
3达拉斯
4达拉斯
5托皮卡
6威奇托
那么我会在文本框中键入“威奇托,达拉斯,曼哈顿”或“威奇托,达拉斯,曼哈顿”,然后将过滤我的DataGrid中,只显示
2曼哈顿
3达拉斯
4达拉斯
6威奇托
这里是我的代码。它不喜欢在'%{s}%'处有一个数组值,但它适用于FilterTextBox.Text为“Dallas”或甚至“Dall”的单个过滤器,例如'%{FilterTextBox.Text}%' 。
private void FilterTxtbox_TextChanged(object sender, EventArgs e)
{
if (uxFilterTxtbox.Text != "Type Here...") //IGNORE... This is for my watermark capibility
{
string[] s = uxFilterTxtbox.Text.Split(',');
(uxWiuInfoGrid.DataSource as DataTable).DefaultView.RowFilter =
$"WiuAddressCol + SubDivLongNameCol + StationNameCol + LineSegCol + MilepostCol + MilepostSuffixCol LIKE '%{s}%'";
}
}
行过滤器使用类似SQL的语法。你将不得不把每个条件放在一起。 – Crowcoder
谢谢我在下面发布了一个快速解决方案。如果有更好的方法,请让我知道。 – JustCoding