c# - 使用 Combobox C# 导入后过滤 Datagridview
问题描述
我有一个 datagridview1,其中包含从 excel 文件导入的数据,有 12 列:日期、名称、活动、项目、时间、评论等。和 1000 行。我想要做的是仅在项目列中使用项目名称过滤所有项目。例如,我有支持作为(项目名称)我想显示所有列过滤支持行。我有组合框来选择我需要在此处过滤它的列(例如项目),我尝试使用此代码但它不起作用。任何人都可以帮助我请:谢谢!
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string projektItem = comboBox1.Items[comboBox1.SelectedIndex].ToString();
if (projektItem == "Project") {
foreach (DataRow dataRow in dataGridView1.Rows)
{
StringBuilder filter = new StringBuilder();
for (int i = 0; i < dataGridView1.Columns.Count - 1; i++)
{
filter.Append(dataRow[i].ToString());
filter.Append("\t");
}
dataGridView1.DataSource = filter.ToString();
}
if (projektItem == "Name") {
}
if (projektItem == "Aktivity") {
}
}
解决方案
如果我理解正确,您正在使用组合框来选择要过滤的列。
在 dataGridView 中过滤数据的一种简单方法是执行以下操作:
获取包含您要显示的所有信息的 DataTable。
将 DataTable 转换为 DataView
将DataView的RowFilter属性改为,例如“Name = sth”
应用过滤器后,将 DataView 转换回 DataTable
使用该 DataTable 作为 DataGridView 的源
我喜欢的是 RowFilter 允许您以与 SQL WHERE 子句非常相似的方式进行过滤
推荐阅读
- python - Python,迭代文件或另一个行生成器的函数
- css - 如何将弯曲项目设置为全宽,除了一些?
- highcharts - 在 highcharts.js 中,如何使用图像制作自定义刻度
- python - 如何将 Prophet 的 make_future_dataframe 与多个回归器一起使用?
- html - domNode 文档表示的大内存占用
- arrays - Hive 查询打印多个条目的 collect_set 值,如果条目是一次则不打印
- oracle - 如何将分隔字符串转换为 PL/SQL 表以进行 JOINing?
- git - Git / VS 2019 - 推送延迟导致代码被覆盖
- laravel - 如何使用 eloquent -> with 收集方法
- webpack - 通过 Jhipster 使用外部翻译和配置文件