EhGrid可以设置某一列排序,在列头上有一个小箭头,请问我怎么才能让它可以使用?

解决方案 »

  1.   

    在TitleClick事件里写上下列代码,则能实现你的功能
    procedure TYFrmDyCpQry.DBGridEh1TitleClick(Column: TColumnEh);
    var
      str: string;
    begin
      case Column.Title.SortMarker of //列排序
        smNoneEh:
          begin
            Column.Title.SortMarker := smDownEh;
            str := 'order by ' + Column.FieldName + ' DESC';
          end;
        smDownEh:
          begin
            Column.Title.SortMarker := smUpEh;
            str := 'order by ' + Column.FieldName;
          end;
        smUpEh:
          begin
            Column.Title.SortMarker := smDownEh;
            str := 'order by ' + Column.FieldName + ' DESC';
          end;
      end;
    end;
      

  2.   

    首先设置dbgrideh的optionseh中的dghautosorting为true
    然后加入下列代码:(dbgrideh的数据源是adoquery1)
    procedure TForm1.DBGridEh1TitleClick(Column: TColumnEh);
    begin
      case Column.Title.SortMarker of
        smDownEh:
          begin
            adoquery1.Sort:=column.fieldname+' DESC ';
          end;
        smUpEh:
          begin
            adoquery1.Sort:=column.fieldname+' ASC ';
          end;
      end;
    end;