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列. ...
随机推荐
- httphandler httpmodule一些个人理解
asp.net 对于http请求需要走一个管道就行一层一层的过滤:比如身份验证,根据请求的资源不同分发给具体哪个dll来处理 这些管道中就是httpmodule.所以我们自己写的httpmodule实 ...
- 程序的流程控制-分支结构 if
1.分支结构:if语句 第一种格式: /* if(条件表达式){ 语句体; } 其它语句 */ public class IfDemo1{ public static void main(String ...
- 在Git中设置自己的姓名
在Git中,自己的姓名与每一个commit提交绑定在一起.如果你在使用Azure DevOps Server中的Git Repo时,一定要注意commit中的提交者与服务器上的推送者,是两个概念. 在 ...
- Sequential Container
Notes from C++ Primer Initialize container by iterator When copy a container to another, the contain ...
- 笔记:Activity的启动过程
Activity的创建特点 作为四大组件之一的Activity,它不像普通java对像那样,可以new出来,然后去使用.而是调用 startActivity()这样的方式启动.那么Android系统是 ...
- Cordova - IOS浏览器里面数字被当做电话号码
网页上有连续超过5个数字,ios浏览器就会当做手机号码,如果某行文字有颜色,那么这个连续的数字就没颜色,变黑色了. 解决方法:在html页面头部加入下面代码 <meta name="f ...
- linux下应用程序性能剖分神器gprofiler-tools-安装和使用
最近在摆弄算法的的优化,需要剖分一下算法的瓶颈,就找了一些代码剖分工具,其中 gprofileer-tools是很不错的工具,gperftools时google开源的一款C++性能分析分析工具,git ...
- LeetCode--No.001 Two Sum
Two Sum Total Accepted: 262258 Total Submissions: 1048169 Difficulty: Easy Given an array of integer ...
- [P4318] 完全平方数
想不出什么办法能直接算的(别跟我提分块打表),不如二分答案吧:设\(f(x)=\sum_{i=1}^n [i不是"完全平方数"]\), 显然f(x)与x正相关.再结合筛法.容斥,不 ...
- oracle中查询用户表/索引/视图创建语句
不多说,直接上干货 1.查询当前用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future') from dual; 2.查询其他用户下表的创建 ...