winform中的datagrid好像没有排序功能啊,楼主要不要贴代码出来看一看。

解决方案 »

  1.   

    eee,我也碰到了,不好意思,楼主:)
      

  2.   

    我知道了,由于你清除了所有列,而datagrid是用这个table绑定的,因此这样会出现异常。
    在datatable.columns.clear()后面加一句:
    dataGrid1.DataSource=null即可解决此问题。
      

  3.   

    试试在Clear前使用DataView的ApplyDefaultSort
      

  4.   

    看来大家的方法都很有道理不过最好不要使用grid对table排序,最好使用table.defaultview做datasource然后排序view
      

  5.   

    对dataview进行排序应该是最合适的!
      

  6.   

    大哥们,你们这样的答案叫我怎么给分嘛,这可是200分的问题啊
    我有一个解决方案
    首先让datagrid的allowsort属性为false
    这时就可以删除所有的列了
    所有的列都删除了后就可以设置datagrid的allowsort属性为true
    这样下次还可以排序
    这个办法只能从表面上解决问题,我想知道更高级一点的方法
      

  7.   

    试试
    this.BindingContext[dataGrid1.DataSource,dataGrid1.DataMemeber].SuspendBinding();
    ......
    this.BindingContext[dataGrid1.DataSource,dataGrid1.DataMemeber].ResumeBinding();
      

  8.   

    就是用自动生成的数据窗体,也是用dataview作为数据源,所以还是以dataview
    作为数据元,然后再进行排序