我的数据网格视图中填充了值
我必须在datagridview中创建一个搜索。
private void textBox_Search_TextChanged(object sender, EventArgs e)
{
String search = textBox_Search.Text.Trim();
if (!String.IsNullOrEmpty(search))
{
dataGridView_LicenseKey.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
webservicelicencesBindingSource.Filter = string.Format("{0}= '{1}'", "nom_centre", search);
}
}
我使用上面的代码。
上述代码的解释:当我在文本框中键入第一个字母时,datagridview变为空,除非我输入与datagridview中的值匹配的完整字符串。
我想要的是什么:当我按下文本框中的字母时,datagridview应该减少。
例如:
values in Datagrid view
1. ABCDE
2. ABEFG
3. erdzf
4. rezfj
5. Agfe
当我在文本框中输入“A”时
value in Data grid view
1. ABCDE
2. ABEFG
3. Agfe
当我在文本框中输入“AB”时
value in Data grid view
1. ABCDE
2. ABEFG
当我在文本框中输入“ABC”时
value in Data grid view
1. ABCDE
等等。
需要帮助。
先谢谢。
答案 0 :(得分:1)
您的过滤条件错误,仅过滤精确值。它应该是这样的:
webservicelicencesBindingSource.Filter = string.Format("{0} LIKE '{1}%'", "nom_centre", search);
(不一定是大写)
编辑:
要再次显示所有结果,您必须在搜索字词为空时改善条件,如下所示:
dataGridView_LicenseKey.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
if (!String.IsNullOrEmpty(search))
{
webservicelicencesBindingSource.Filter = string.Format("{0}= '{1}'", "nom_centre", search);
}
我认为您在评论中提到的错误过滤可能会发生,因为事件是在每次文本更改时触发的。因此,如果您有搜索词“AB”,按时间删除一个字符,它将首先按'A'过滤,然后取消另一个过滤器,因为搜索字符串为空。这种情况会给出上述结果。