【发布时间】:2016-10-05 19:19:50
【问题描述】:
我有这段代码可以使用checkedListBox 过滤我的dataGridView。每次用户选中checkedListBox中的一个框时,dataGridView都会自动更新以仅显示与选中名称相关的数据(例如,按选中名称=“John”过滤)并且效果很好。
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
DataTableCollection tables = myDatabaseDataSet.Tables;
DataView view = new DataView(tables[0]);
BindingSource source = new BindingSource();
source.DataSource = view;
dataGridView1.DataSource = source;
source.Filter = "myColumnName ='" + checkedListBox1.Text.Replace("'", "''") + "'";
}
现在的问题是,我如何才能检查 checkedListBox 中的多个项目,然后通过只显示检查的名称来更新 dataGridView(例如,checkedListBox 中的检查名称是“John”和“Jane”)?
上面的代码给了我以下结果:
我想要实现的是这个(模拟图片):
感谢任何帮助。
【问题讨论】:
-
名字不能是约翰*和简。使用或
-
必须有一个初级排序(你不能平等地按 John 和 Jane 排序)你可以按 John 排序,然后是二级排序由 Jane;这就是你所追求的吗?
-
我正在寻找的是过滤所有名称的datagridview,但在checkedListBox中有复选标记的名称。上面的代码已经一次带了一个名字。我一次想要多个名字。
-
@StevenByrne 是的,只要 datagridview 在同一个 datagridview 列表中同时显示两个名称。
-
如果 kalamazoowho 的回答不能解决您的问题,请用期望的结果更新您的问题,因为我对您想要实现的目标有点困惑。是否要更改列或对数据行进行排序?如果您尝试按姓名排序,John,然后 Jane,然后 Bill,Katie 将不同于您希望 John Jane Bill 和 Katie 都显示和排除所有其他数据。
标签: c# checkedlistbox