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"] = ;
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 多列排序功能的更多相关文章
- datagridview 日期列排序
1.datagridview 日期列排序 private void Form1_Load(object sender, EventArgs e) { //方法1 dataGridView1.Colum ...
- 你可能不知道的Linux/GNU bash sort多列排序功能
(转载请注明原创于潘多拉盒子) Linux man pages的缺点就是,如果你不会用某个命令,那么看完了多半还是不会.原因是,没有例子!比较囧吧? sort是提供了多列排序的功能的.通过-k选项,可 ...
- GridView多列排序
public class WebGridView:GridView { 属性#region 属性 /**//// <summary> /// 是否启用或者禁止多列排序 /// </s ...
- 禁用datagridview中的自动排序功能
把datagridview中的自动排序功能禁用自己收集的两种方法,看看吧①DataGridView中的Columns属性里面可以设置.进入"EditColumns"窗口后,在相应的 ...
- [WPF]ListView点击列头排序功能实现
[转] [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...
- C# asp.net repeater实现排序功能,自动排序,点击头部排序,点击列排序
在网上看到好多关于repeater排序的,自己动手用了,发现一些问题,贴源码后把发现的问题以及解决方法给出 repeater实现排序功能(单击升序排列,再单击降序排列).原理很简单,在<TD&g ...
- DataGridView的自定义列排序
1,将需要进行排序的列做属性的设置 this.colUserName.SortMode = DataGridViewColumnSortMode.Programmatic; 2,添加列的事件 //点击 ...
- DataGridView点击排序完成后如何禁止自动排序
Summary: Disable sorting after clicking DataGridView columnheader,Prevent databound DataGridView fro ...
- .NET组件控件实例编程系列——5.DataGridView数值列和日期列
在使用DataGridView编辑数据的时候,编辑的单元格一般会显示为文本框,逻辑值和图片会自动显示对应类型的列.当然我们自己可以手工选择列的类型,例如ComboBox列.Button列.Link列. ...
随机推荐
- JavaScript ~~ECMAScript
一.JavaScript 简介 HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) 2.JavaScript ...
- Django Admin 专题
Django admin Django强大的功能之一就是提供了Admin后台管理界面,简单配置就可以对数据库内容做管理 创建ModelAdmin并注册 from django.contrib impo ...
- 几种简单的编码(为什么使用ASCII码)
二-十进制码(BCD码) 在目前的数字系统中,一般是采用二进制数进行运算的,但是由于人们习惯采用十进制数,因此常需进行十进制数和二进制数之间的转换,其转换方法上面已讨论过了.为了便于数字系统处理十进制 ...
- MySQL学习笔记1(增删查改)
创建表: /* 创建数据库 create database 数据库名; */ CREATE DATABASE mybase; /* 使用数据库 use 数据库名 */ USE mybase; /* 创 ...
- windows上xshell6的安装
各位大兄弟,好用的xshell组件来了,话不多说,开搞. 软件链接链接:https://pan.baidu.com/s/1vcRo2L-LNe2BrJ9-VCy57A 密码:ei73 有下面四个软件, ...
- 微软2014校招笔试题-String reorder
Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB Description For this question, your pro ...
- 在Hadoop集群上的HBase配置
之前,我们已经在hadoop集群上配置了Hive,今天我们来配置下Hbase. 一.准备工作 1.ZooKeeper下载地址:http://archive.apache.org/dist/zookee ...
- underscore.js源码解析【集合】
// Collection Functions // -------------------- // The cornerstone, an `each` implementation, aka `f ...
- Android 性能优化-启动时间
adb shell am start -W -n com.xxxx(包名)/xxx.xxxActivity(launch Activity)
- Eureka单机高可用伪集群配置
Eureka Server高可用集群理论上来讲,因为服务消费者本地缓存了服务提供者的地址,即使Eureka Server宕机,也不会影响服务之间的调用,但是一旦新服务上线,已经缓存在本地的服务提供者不 ...