三层结构中DBGridEh实现点击列Title排序

来源:互联网 发布:昆明网络教学平台 编辑:程序博客网 时间:2024/05/22 16:50

At first you need to define index for every column that you want to sort:

1w:in IDE

    double click your ClientDataSet's IndexDefs property,Add new,set "Name""Fields""DescFields" value
    (for example:equal to column name)

2w:in code

  with dataset.IndexDefs do
  begin
    Clear;
    with AddIndexDef do
    begin
      Name:='your column name';
      Fields:='your column name';
      DescFields:='your column name';
  end;

Then write code in DBGridEh OnTitleClick:

  case Column.Title.SortMarker of
    smNoneEh:
    begin
      Column.Title.SortMarker := smDownEh;
      fTagStateSetDM.cdsData.IndexName:=Column.FieldName;
    end;
    smDownEh:
    begin
      Column.Title.SortMarker := smUpEh;
      fTagStateSetDM.cdsData.IndexFieldNames:=Column.FieldName;
    end;
    smUpEh:
    begin
      Column.Title.SortMarker := smDownEh;
      fTagStateSetDM.cdsData.IndexName:=Column.FieldName;
    end;
  end;

原创粉丝点击