• DataGridView 多列排序功能


    System.Data.DataTable dt = new System.Data.DataTable();
            private void FillDataGridView()
            {
                dt.Columns.Add("Name");
                dt.Columns.Add("Course");
                dt.Columns.Add("Type");
                dt.Columns.Add("Score");
                DataRow dr = dt.NewRow();
                dr["Name"] = "Lily";
                dr["Course"] = "Math";
                dr["Type"] = "期中";
                dr["Score"] = 88;
                dt.Rows.Add(dr);
                DataRow dr1 = dt.NewRow();
                dr1["Name"] = "Lily";
                dr1["Course"] = "EN";
                dr1["Type"] = "期中";
                dr1["Score"] =98;
                dt.Rows.Add(dr1);
                DataRow dr2 = dt.NewRow();
                dr2["Name"] = "Rich";
                dr2["Course"] = "Math";
                dr2["Type"] = "期末";
                dr2["Score"] = 78;
                dt.Rows.Add(dr2);
                DataRow dr3 = dt.NewRow();
                dr3["Name"] = "Lily";
                dr3["Course"] = "Math";
                dr3["Type"] = "期末";
                dr3["Score"] = 97;
                dt.Rows.Add(dr3);
                dgv_Test.DataSource = dt;
            }
    
                  private void dgv_Test_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                if (dgv_Test.Columns[e.ColumnIndex].Name == "Name")
                {
                    dt.DefaultView.Sort = "Name,Score Asc";
                    dgv_Test.DataSource = dt;
                }
            }

    这个其实没有任何技术的难度,只是思路稍微转换了一下。

    当接到用户的需求,他们希望点击一列,然后另一列也按照期望排序,并且需要保留datagridview自带的点击列头排序功能时,

    我的第一反应是拒绝的,这个怎么可以做到,明显相违背的两个操作嘛。

    当我百度了一会儿,然后整理了一下思路,我明白了。

    解决方案:

       我可以通过点击选中的列头,给datagridview重新绑定数据源。(当然要求数据量比较小)。

    代码如下:

      我这里使用的是datatable,我在绑定数据源之前对datatable重新排序,到此,问题解决。

    这个其实没有任何技术的难度,只是思路稍微转换了一下。

    当接到用户的需求,他们希望点击一列,然后另一列也按照期望排序,并且需要保留datagridview自带的点击列头排序功能时,

    我的第一反应是拒绝的,这个怎么可以做到,明显相违背的两个操作嘛。

    当我百度了一会儿,然后整理了一下思路,我明白了。

    解决方案:

       我可以通过点击选中的列头,给datagridview重新绑定数据源。(当然要求数据量比较小)。

    代码如下:

      我这里使用的是datatable,我在绑定数据源之前对datatable重新排序,到此,问题解决。

  • 相关阅读:
    Android开机自启动应用
    扫码登录原理
    前端性能优化
    关于android推送的一些心得
    抓包工具Fiddler及iphone设置
    Node.js介绍、优势、用途
    Yapi本地化部署及接口调试(亲测)
    前后端分离,几个常用的API管理系统
    WebGL之Threejs概述
    Eclipse汉化
  • 原文地址:https://www.cnblogs.com/skyloverdan/p/9234963.html
Copyright © 2020-2023  润新知