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"] = ;
dt.Rows.Add(dr);
DataRow dr1 = dt.NewRow();
dr1["Name"] = "Lily";
dr1["Course"] = "EN";
dr1["Type"] = "期中";
dr1["Score"] =;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["Name"] = "Rich";
dr2["Course"] = "Math";
dr2["Type"] = "期末";
dr2["Score"] = ;
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["Name"] = "Lily";
dr3["Course"] = "Math";
dr3["Type"] = "期末";
dr3["Score"] = ;
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重新排序,到此,问题解决。

DataGridView 多列排序功能的更多相关文章

  1. datagridview 日期列排序

    1.datagridview 日期列排序 private void Form1_Load(object sender, EventArgs e) { //方法1 dataGridView1.Colum ...

  2. 你可能不知道的Linux/GNU bash sort多列排序功能

    (转载请注明原创于潘多拉盒子) Linux man pages的缺点就是,如果你不会用某个命令,那么看完了多半还是不会.原因是,没有例子!比较囧吧? sort是提供了多列排序的功能的.通过-k选项,可 ...

  3. GridView多列排序

    public class WebGridView:GridView { 属性#region 属性 /**//// <summary> /// 是否启用或者禁止多列排序 /// </s ...

  4. 禁用datagridview中的自动排序功能

    把datagridview中的自动排序功能禁用自己收集的两种方法,看看吧①DataGridView中的Columns属性里面可以设置.进入"EditColumns"窗口后,在相应的 ...

  5. [WPF]ListView点击列头排序功能实现

    [转]   [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...

  6. C# asp.net repeater实现排序功能,自动排序,点击头部排序,点击列排序

    在网上看到好多关于repeater排序的,自己动手用了,发现一些问题,贴源码后把发现的问题以及解决方法给出 repeater实现排序功能(单击升序排列,再单击降序排列).原理很简单,在<TD&g ...

  7. DataGridView的自定义列排序

    1,将需要进行排序的列做属性的设置 this.colUserName.SortMode = DataGridViewColumnSortMode.Programmatic; 2,添加列的事件 //点击 ...

  8. DataGridView点击排序完成后如何禁止自动排序

    Summary: Disable sorting after clicking DataGridView columnheader,Prevent databound DataGridView fro ...

  9. .NET组件控件实例编程系列——5.DataGridView数值列和日期列

    在使用DataGridView编辑数据的时候,编辑的单元格一般会显示为文本框,逻辑值和图片会自动显示对应类型的列.当然我们自己可以手工选择列的类型,例如ComboBox列.Button列.Link列. ...

随机推荐

  1. Celery分布式任务队列快速入门

    本节内容 1. Celery介绍和基本使用 2. 项目中使用Celery 3. Celery定时任务 4. Celery与Django结合 5. Django中使用计划任务 一  Celery介绍和基 ...

  2. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  3. zuul熔断代码

    package com.sun.fallback; import java.io.ByteArrayInputStream; import java.io.IOException; import ja ...

  4. OC学习2——C语言特性之函数

    1.OC是在C语言的基础上进行扩展的,在OC中直接用C语言进行coding也是可以通过编译的.因此,函数定义的语法格式如下: 函数返回值类型 函数名(形参列表) { //由零条或多条可执行性语句组成的 ...

  5. Python模块——xml

    xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单, 不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行 ...

  6. python之装饰器(decorator)

    python的装饰器如果用得好,那是大神,用的不好最好别用... 装饰器(decorator)主要包含俩大属性: 1.不能改变原有函数的调用方式 2.不能改变原有函数的代码 第一个表示,我不需要改变原 ...

  7. LDA-线性判别分析(四)其他几个相关问题

    本来是要调研 Latent Dirichlet Allocation 的那个 LDA 的, 没想到查到很多关于 Linear Discriminant Analysis 这个 LDA 的资料.初步看了 ...

  8. 《Kubernetes权威指南》——网络原理

    1 Kubernetes网络模型 基本原则:每个Pod都拥有一个独立IP,而且假定所有Pod都在一个可以直接连通的.扁平的网络空间中. 基于基本原则,用户不需要额外考虑如何建立Pod之间的连接,也不需 ...

  9. DP的学习

    DP在ACM的算法里面可算是重中之重,题目类型千变万化,题目难度差异也很大.是一种很讲究技巧的算法,而且代码实现相对容易,1y率非常高(除有些bt数据外).总之DP就是一向非常重要,又非常博大精深的算 ...

  10. C# 中集合类型需要按多个条件排序

    在 C# (.net 3.5 之后) 中集合是可以通过 OrderBy() 和 OrderByDescending()方法来进行排序的,如果需要集合中的元素是对象,还可以通过 Lambda表达式进行按 ...