C# DataGridView控件关闭列自动排序功能

当DataGridView绑定DataTable时,点击DataGridView表头的时候,DataGridView会自动排序(注意string按字符串排序的,不是按数值大小),但是对于绑定的DataTable并不会随着DataGridView的行顺序改变数据的顺序。

在DataGridView控件里面的属性关闭列自动排序是需要到对应列里面去设置SortMode属性为NotSortable的,对于绑定DataTable数据的并不适用,需要在绑定DataTable之后再代码里面关闭列自动排序。

DataGridViewTextBoxColumn 的默认排序模式是 Automatic。其他列类型的默认排序模式是 NotSortable。

控件属性设置:
编辑列–>选定列–>行为–>SortMode–>NotSortable
在这里插入图片描述

设置的代码如下:

     for (int i = 0; i < this.dataGridView1.Columns.Count; i++)
                this.dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;

首先是获取总共有多少列,然后通过循环将每一列的SortMode设置成不自动排序就可以了。这里总共有三个属性可供选择,一种就是默认的自动排序,一种是不排序,在就是通过程序控制排序,可以根据需要进行设置。

C# DataGridView控件关闭列自动排序功能当DataGridView绑定DataTable时,点击DataGridView表头的时候,DataGridView会自动排序(注意string按字符串排序的,不是按数值大小),但是对于绑定的DataTable并不会随着DataGridView的行顺序改变数据的顺序。在DataGridView控件里面的属性关闭列自动排序是需要到对应列里面去设...
//禁止每一点击标题排序for(inti=0;i<dataGridView1.Columns.Count;i++){dataGridView1.Columns[i].SortMode=DataGridViewColumnSortMode.NotSortable;} for (int i = 0; i < this.dataGridView1.Columns.Count; i++) this.dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; 原文地址:http://www.cnblogs.com/wh
for (int i = 0; i < dataGridView.Columns.Count; i++) dataGridView.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; //禁止排序 dataGridView.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
for (int i = 0; i < this.dataGridView1.Columns.Count; i++) this.dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable; 如果有多个的话,可以在数据绑定完成之后执行这段代码: for (int i = 0; i < this.dataGridView1.Co...
之前做记账程序时用了DataGridView来呈现数据,为了提升用户体验,在显示数据时我还在最后一行加了一个统计行。又因为DataGridView是可以点击标题行来排序的,当用户点击排序时最后的统计行也会跟着排序,变到其他行去了,这样很不爽。       于是就要想一个办法让最后一行不参与排序DataGridView本身没有这样的方法,得自己实现。搜索之后得到一个思路:在排序前先保存最后一行,
for (int i = 0; i < DgvExcel.Columns.Count; i++) DgvExcel.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
//禁止每一点击标题排序for(inti=0;i&lt;dataGridView1.Columns.Count;i++) dataGridView1.Columns[i].SortMode=DataGridViewColumnSortMode.NotSortable;