0

我想在 c# 中使用 datagridview 创建一个搜索列表。我有一个文本框,可以在其中输入客户姓名。单击“搜索”按钮时,我将隐藏 CustomerName 不等于 searchValue 的所有行。问题是,当用户要第二次搜索时,如何通过 dgv 的隐藏行进行搜索。我是否需要使隐藏的行可见。谢谢。

这是代码。

   private void search_Click(object sender, EventArgs e)
    {
         arrayList= new ArrayList();
        String searchValue = searchBox.Text;
        for (int i = 0; i < dataGridView1.RowCount-1; i++)
        {
            if ( (dataGridView1.Rows[i].Cells[1].Value.ToString().Trim() ).Equals (searchValue.Trim()) )
            {
                //dataGridView1.Visible = true;
                arrayList.Add(i);
            }
            else
            {
                dataGridView1.Visible = false;
            }
        }
        dataGridView1.Refresh();

    }
4

1 回答 1

0

您是否使用数据表来绑定数据网格视图?如果是,则在搜索时可以迭代数据表并删除与搜索条件不匹配的行。当您搜索时,您可以拒绝对数据表的更改以再次获得原始数据。之后,您可以使用最初使用的相同过程(将与搜索条件不匹配的数据行标记为已删除)。

另一种选择是使用 DataRowView 并使用您的搜索条件进行过滤,并使用该 datarowview 来绑定 datagridview。我更喜欢最后一个。

于 2013-04-14T17:40:14.067 回答