如题

解决方案 »

  1.   

    看你写的是什么样的?你用的ADO还是BDE?
      

  2.   

    OptionsEh中的 dghAutoSortMarking 设置为True
    字段的Title中的TitleButton设置为True
    记得好像要引用相应的单元 根据ADO、BDE不同吧
      

  3.   

    我用的是ADO。
    上面的方法我都试了,点完Title之后,Title上会出现一个正三角或倒三角符号,但是实际上没有排序
      

  4.   

    谁有点击TDBGridEh标题排序的可用的代码,我在网上找了许多,试了之后都不会排序
      

  5.   

     private
        { Private declarations }
        sort: string;
    procedure TForm1.DBGridEh2TitleClick(Column: TColumnEh);
    begin
      if SORT = 'DESC' then
      begin
        Sort := 'ASC';
        Column.Title.SortMarker := smUpEh;
      end
      else
      begin
        sort := 'DESC';
        Column.Title.SortMarker := smDownEh;
      end;
      ADOTable1.Sort := Column.FieldName + ' ' + sort;
    end;
      

  6.   

      用的是ADO,在DBGridEh的OnTitleBtnClick事件里:
      if DataModule1.ds_sql.Active then
      begin
       if column.Title.SortMarker=smdowneh then
       DataModule1.ds_sql.Sort :=column.FieldName
       else
       DataModule1.ds_sql.Sort :=column.FieldName +' DESC';
      end; 
      

  7.   

      用的是ADO,在DBGridEh的OnTitleBtnClick事件里:
      if DataModule1.ds_sql.Active then
      begin
       if column.Title.SortMarker=smdowneh then
       DataModule1.ds_sql.Sort :=column.FieldName
       else
       DataModule1.ds_sql.Sort :=column.FieldName +' DESC';
      end; 
      

  8.   

    再引用 EhlibADO 单元就可以了。{*******************************************************}
    { Add this unit to 'uses' clause of any unit of your    }
    { project to allow TDBGridEh to sort data in            }
    { TADOQuery automatically after sorting ers         }
    { will be changed.                                      }
    { TSQLDatasetFeaturesEh will try to find line in        }
    { TADOQuery.SQL string that begin from 'ORDER BY' phrase}
    { and replace line by 'ORDER BY FieldNo1 [DESC],....'   }
    { using SortMarkedColumns.                              }
    {*******************************************************}