我想在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();
}
答案 0 :(得分:0)
您使用数据表绑定datagridview吗? 如果您正在搜索,则可以迭代数据表并删除与您的搜索条件不匹配的行。搜索时,您可以拒绝数据表上的更改以再次获取原始数据。之后,您可以使用与第一个位置相同的过程(将与搜索条件不匹配的数据行标记为已删除)。
另一种替代方法是使用DataRowView并使用您的搜索条件进行过滤,并使用该数据视图来绑定datagridview。我希望最后一个。