gpt4 book ai didi

c# - 如何使用文本框在数据 GridView 中搜索数据?

转载 作者:太空狗 更新时间:2023-10-30 00:04:45 25 4
gpt4 key购买 nike

这是我当前的代码:

private void searchTextBox_TextChanged(object sender, EventArgs e)
{
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name='{0}'", searchTextBox.Text);

}

但是,每当我在文本框中键入内容时,我的数据网格表会过滤所有内容并变为空白。知道为什么吗?提前致谢!

最佳答案

您看到空白的可能原因 DataGridView是由于您的过滤器字符串搜索与 TextBox 完全匹配的结果文本。

"Name='{0}'"

因为您正在 TextBox.TextChanged 中更新此过滤器事件,您第一次输入字符时 - 未找到匹配项。例如,给定以下网格:

╔════╦══════╗                    ╔════════╗
║ ID ║ Name ║ searchTextBox ║ ║
╠════╬══════╣ ╚════════╝
║ 1 ║ Foo ║
║ 2 ║ Bar ║
║ 3 ║ Baz ║
╚════╩══════╝

正在输入 Bar将给出以下结果:

╔════╦══════╗                    ╔════════╗
║ ID ║ Name ║ searchTextBox ║ B ║
╠════╬══════╣ ╚════════╝
╚════╩══════╝
╔════╦══════╗ ╔════════╗
║ ID ║ Name ║ searchTextBox ║ Ba ║
╠════╬══════╣ ╚════════╝
╚════╩══════╝
╔════╦══════╗ ╔════════╗
║ ID ║ Name ║ searchTextBox ║ Bar ║
╠════╬══════╣ ╚════════╝
║ 2 ║ Bar ║
╚════╩══════╝

如果是这种情况,我在下面提供了几个选项。如果不是这种情况,那么你就有了一个谜。


  1. 完全匹配:考虑使用以下事件处理程序代替,以便过滤器仅输入完整的搜索文本后应用:

    private void searchTextBox_Leave(object sender, EventArgs e)
    {
    if (string.IsNullOrEmpty(searchTextBox.Text))
    {
    (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Empty;
    }
    else
    {
    (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name='{0}'", searchTextBox.Text);
    }
    }
  2. StartsWith 匹配:对文本更改进行更流畅的过滤:

    private void searchTextBox_TextChanged(object sender, EventArgs e)
    {
    (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name LIKE '{0}%'", searchTextBox.Text);
    }
  3. 包含匹配项: 再次,流体过滤:

    private void searchTextBox_TextChanged(object sender, EventArgs e)
    {
    (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name LIKE '%{0}%'", searchTextBox.Text);
    }

关于c# - 如何使用文本框在数据 GridView 中搜索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31809201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com