ehlib控件组里的DBGridEh控件,点击某一列的标题,该列就可以排序.
这个功能该如何设置?
我摸索了半天,也没有搞出来

解决方案 »

  1.   

    又遇到了一个棘手的问题:多表关联的时候不能点击标题排序,否则会报错。我研究了一下,如果是两个表关联,主表的AdoQuery的sql语句不写order by.. ,
    就没有关系,否则报错。如果是三个表关联,第一个表是主表,第二个表是第一个表的从表,第三个表是
    第二个表从表,那么不管你的SQL语句里有没有写ordery by, 只有第三个表可以击标题排序,另外两张表都有问题,怎么办?
      

  2.   

    http://community.csdn.net/Expert/TopicView.asp?id=3242791
      

  3.   

    procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    Var
     Orderby,StrNewSQL,StrOldSQL: String;
    begin
    Orderby := Column.FieldName;
    StrOldSQL := ADODataSet1.CommandText;
    Try
     begin
      If UpRoDown Then    //全局变量,控制升降序。
       StrNewSQL := 'Select * From Orders Order by '+ Orderby
      Else
       StrNewSQL := 'Select * From Orders Order by '+ Orderby +' DESC';
      ADODataSet1.Active := false;
      ADODataSet1.CommandText := StrNewSQL;
      ADODataSet1.Active := True;
      UpRoDown := not UpRoDown;
     end;
    except
     begin
      ADODataSet1.Active := false;
      ADODataSet1.CommandText := StrOldSQL;
      ADODataSet1.Active := True;
     end;
    end;
    end;
      

  4.   

    uses ehlibado(dataserver)
    然后设置:optionsEh-dghautosorting:=true;
    sortlocal:=true;
    titlebutton:=true;