如果我已经对某列进行了排序  我想实现按某个按钮后,恢复成默认的状态,即取消排序,要如何实现呢?
我的DataGridView是没有绑定数据的,我排序用的是Sort(DataGridViewColumn, ListSortDirection) 方法。

解决方案 »

  1.   

    AllowSorting = false;
    再重新绑定
      

  2.   

    不知道 很多  DataGridView 不绑定数据库是怎么 有数据显示的?
      

  3.   

    在按钮事件里,把DataGridView重新设置AllowSorting=false;
      

  4.   

                foreach (DataGridViewColumn column in dataGridView2.Columns)
                {
                    column.SortMode = DataGridViewColumnSortMode.NotSortable;
                }
      

  5.   

    楼上几位  貌似DataGridView没有AllowSorting属性的吧。
      

  6.   

    this.dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
    禁止排序,取消排序重新绑定数据
      

  7.   

    啥嘛,你最原来的状态不是没排序嘛,他其实是按照id来排序的吧(表里面的数据是按照你添加进去的时间来排的,所以默认就是时间或者id的顺序)?那你现在又按id来一下序,然后绑定一下就是啦。
      

  8.   

    哦,我犯了个错误datagridview的排序并不改变原来的表里面的顺序,所以就是如1楼所说,重新绑定一下数据就可以了,就是你原来的那种排序方式
      

  9.   

     Dim table As DataTable = DataGridView标准数据.DataSource
            table.DefaultView.Sort = ""
    这才是正解
      

  10.   


    实践证明,楼上才是正解啊,我跟楼主的用法一样,数据源不是从数据库中得到的,是编程的方式添加的,datagridview通过按列标题进行排序之后,这个时候, 即使你把原来的行数据删除再重新添加,结果添加完了之后的结果还是会按照datagridview之前列标题的排序进行排序的。重新绑定数据也一样,因为datagridview的列排序已经放在哪里了,你怎么改变也改变不了。。按照楼上的方法,可以消除之前datagridview的列排序,而且不需要什么重新绑定数据,相当于把之前列排序的状态消除了。。