各位高手,谁能告诉我,当我通过adoquery将数据库中的数据显示用dbgrid显示出来,我想点击每列的时候,就会自动的排序!
在线等候!

解决方案 »

  1.   

    用个order by语句就可以了啊
    写在onclick事件里面
      

  2.   

    利用dbgrid的ontitleclick 事件:
    然后在adoquery中加入 order by column参数 就可以了
      

  3.   

    放datasource,adoquery,dbgrid
    设置:daasource.dataset:=adoquery;
         dbgrid.datasource=datasoruc;
    在OnClick事件中:
    with adoquery1 do
      begin
        close;
        sql.clear;
        sql.add('select * from sub0 order by 字段名');
         open;
      end;
      

  4.   

    DBGridEh中的,参考一下 aqStore: TADOQuery,为dgeStore数据集
    procedure TfrmEhlib.dgeStoreTitleBtnClick(Sender: TObject; ACol: Integer;
      Column: TColumnEh);
    begin
      if column.Title.SortMarker = smUpEh then
      begin
        aqStore.Sort := column.FieldName + ' DESC';
        column.Title.SortMarker := smDownEh;
      end
      else
      begin
        aqStore.Sort := column.FieldName + ' ASC';
        column.Title.SortMarker := smUpEh;
      end;
    end;
      

  5.   

    lianshaohua,你的那个排序是固定的,我要的是点击不同的列时,就有不同的排序!
    我 试试秋风的
      

  6.   

    在DBGRID的ONTITLECLICK 事件中加如下代码:
    adoquery1.sort:=column.fieldname+' asc' ;// ' desc'
    adoquery1.filtered:=true;