如何过滤从C#.Net的excel文件导入的datagridview中的列

问题描述 投票:-1回答:1

例如,我有一个datagridview1,其中包含从excel文件导入的数据,并且有12列:日期,名称,活动,项目,时间,注释等。和1000行。我想要做的是仅在项目列中使用项目名称过滤所有内容。例如,我有一个(Projectname)支持,我想按支持行显示所有列filtyring。我有组合框来选择我需要对其进行过滤的列(例如Project),我尝试使用此代码,但无法正常工作。

谢谢!

enter code here

  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") {
        }


    }
c# .net filter
1个回答
0
投票

这就是我的做法。将datagridview转换为datatable DataTable dtFromGrid = new DataTable(); dtFromGrid = dataGridView1.DataSource as DataTable;这是过滤器的功能:如果关闭过滤器,请按住原始表以返回]

Public void Find(string column, string)
{
    DataRow() dtResult;
    DataTable holder = New DataTable

    DataTable holder = datatable.Clone()
    holder.Rows.Clear()
    If (originTable != null)
        datatable = originTable
    Else
        originTable = datatable

    dtResult = datatable.Select("[" & column & "] LIKE '%" & st & "%'")
    foreach(DataRow dr In dtResult){holder.ImportRow(dr)}

    datatable = holder.Copy()
    holder.Clear()}

dataGridView1.DataSource =数据表;

© www.soinside.com 2019 - 2024. All rights reserved.