Code Bye

C#datagridview点击列名会自动排序,排序后再把排序效果取消

 

如题.点击了列名后,在点击一个按钮,将排序的效果取消掉.急急急急!!!!在线等 

 this.dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;
引用 楼主 u010137132 的回复:

如题.点击了列名后,在点击一个按钮,将排序的效果取消掉.急急急急!!!!在线等 

 this.dataGridView1.Columns["xxx"].SortMode = DataGridViewColumnSortMode.NotSortable;//xxx为列名,如果要多个列取消排序,可以做个循环
引用 1 楼 guwei4037 的回复:
 this.dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;

这个没用.在自动排序后,在设置这个,排序的效果还是存在的.

引用 3 楼 u010137132 的回复:
Quote: 引用 1 楼 guwei4037 的回复:
 this.dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;

这个没用.在自动排序后,在设置这个,排序的效果还是存在的.

什么自动排序?你在窗体绑定的时候,把这行代码加上不就不可以排序了么?

引用 4 楼 guwei4037 的回复:
 this.dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;

这个没用.在自动排序后,在设置这个,排序的效果还是存在的.

什么自动排序?你在窗体绑定的时候,把这行代码加上不就不可以排序了么?
我要的是一开始点击列名可以自动排序,然后点击一个按钮,已经排序后的效果取消掉

没人会么…急求啊~~~!!!
//禁止每一列点击标题排序
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
    dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}
引用 7 楼 frebirds 的回复:

//禁止每一列点击标题排序
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
    dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}

都说这个不是我想要的

引用 8 楼 u010137132 的回复:
Quote: 引用 7 楼 frebirds 的回复:

//禁止每一列点击标题排序
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
    dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}

都说这个不是我想要的

点击按钮的时候,重新绑定一次,并且执行this.dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable; 不就成了吗?

你排序的时候都执行了排序了,假如你想退回刚刚那那你再打开次窗口吧把那个按钮的功能搞成第一次进入窗口时应该可以的
经过排查..终于发现问题了..在datagridview自动排序后,居然会影响到绑定在上面的dt1,排序的问题是dt1已经被排序.直接新建一个dt..用dt=dt1.copy(),在讲dt帮上datagridview就解决了..
40分
保存下排序前的DataTable排序完替換回去不就哦了?
 可以更简单一点, 将绑定的 dataview.sort=”” 即可.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#datagridview点击列名会自动排序,排序后再把排序效果取消