DBGrid对应的数据集是ClientDataSet,
有没有一个好的类来的控制,按点字段名进行升降排序!!!

解决方案 »

  1.   

    用adoquery控件作为dataset通过sql语句 order by应该可以吧
      

  2.   

    我用的ADOTABLE,所以,我点字段名排序的时候就直接用:FieldIndexNames:=xxx
      

  3.   

    ADOQuery可以用:ADOQuery1.Sort := Column.FieldName + ' DESC';
    or
    ADOQuery1.Sort := Column.FieldName + ' ASC';
      

  4.   

    换控件TcxGrid
    其中一个函数就是 SortedByXXXXX
    功能比DBGrid复杂多了。
    如果必须要用Delphi自带控件,那么换成TStringGrid。
    手动填充。想怎么排序,就怎么排序。
      

  5.   


    这个方法很好用好。。试过,学习了。
    Delphi(Pascal) codeADOQuery1.Sort := Column.FieldName + ' DESC';//Column.FieldName 是列名。实际相当于 'A DESC' A相当于你要排血的列。
    or
    ADOQuery1.Sort := Column.FieldName + ' ASC';[/Quote]学习了。
      

  6.   

    DBGrid对应的数据集是ClientDataSet, 
      

  7.   

    你可以这样用
    TADOQuery(ClientDataSet1).Sort := Column.FieldName + ' DESC';
      

  8.   

    可以用DBGRIDEH或用LISTVIEW自己写