1.先将DBGridEh做如下设置,这样可使DBGridEh自动修改SortMarking. DBGridEh > OptionsEh > dghAutoSortMarking=true; 2.在DBGridEh的SortMarkingChanged事件中加以下代码,即可。var i:integer; begin for i:=0 to DBGridEh1.SortMarkedColumns.Count -1 do begin if DBGridEh1.SortMarkedColumns[i].Title.SortMarker = smUpEh then begin Adoquery.Sort := DBGridEh1.SortMarkedColumns[i].FieldName + ' DESC'; end else begin Adoquery.Sort := DBGridEh1.SortMarkedColumns[i].FieldName + ' ASC'; end; end;end;
var
SortStr:string;
begin
SortStr:=Column.Field.FieldName+' ASC';
ADOTable1.Sort :=SortStr;
end;
如:DataSort.Sort := 'LastName ASC, DateDue DESC'
至于事件的话,可以是:DBGridehTitleClick(Column: TColumn);
Column是当前点击的子段
DBGridEh > OptionsEh > dghAutoSortMarking=true;
2.在DBGridEh的SortMarkingChanged事件中加以下代码,即可。var i:integer;
begin
for i:=0 to DBGridEh1.SortMarkedColumns.Count -1 do
begin
if DBGridEh1.SortMarkedColumns[i].Title.SortMarker = smUpEh then
begin
Adoquery.Sort := DBGridEh1.SortMarkedColumns[i].FieldName + ' DESC';
end else begin
Adoquery.Sort := DBGridEh1.SortMarkedColumns[i].FieldName + ' ASC';
end;
end;end;