不要激发任何事件,可否利用控件自动对dbgrid中的某个字段进行排序。。

解决方案 »

  1.   

    select * from table order by 字段
      

  2.   

    代码如下:
    全局  blOrder:boolean;  
    procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    begin
      if blOrder then
        begin
        ADOQuery1.Sort := Column.FieldName + ' ASC';
        dbgrid1.Columns[Column.Field.FieldNo-1].Title.Caption:= Column.FieldName+'▲';
        blOrder:=false;
        end
      else
        begin
        ADOQuery1.Sort := Column.FieldName + ' DESC';
        blOrder:=true;
        dbgrid1.Columns[Column.Field.FieldNo-1].Title.Caption:= Column.FieldName+'▼';
        end;
    end;
      

  3.   


    本身通过查询该字段的SQL语句就有默认排序,通过ADO组件显示到DBGRID就有默认顺序,如果你想
    在DBGRID上排序显示,又不触发事件,只有写复杂的SQL脚本,通过脚本来实现排序,那么现实出来的
    必然就是排序顺序。DBGRID本身支持SORT排序,写代码是为了实现目的,方法很多,没有必要就走限定
    某一条件的路
      

  4.   

    本身通过查询该字段的SQL语句就有默认排序,通过ADO组件显示到DBGRID就有默认顺序 ,这一句不太明白,是否在adoquery中写SQL语句?这个我试过,行不通!