首先设X列为排序 DBGridEH1.Columns[X].Title.SortMarker =smUPEh; 然后在DbGridEH1.GridTitleBtnClick()事件写如下代码即可 procedure GridTitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); begin with ((Sender As TDBGridEh).DataSource.Dataset As TAdoDataSet) do begin if Column.Title.SortMarker =smNoneEh then begin Sort :=Column.FieldName+' ASC'; Column.Title.SortMarker :=smUpEh; end else if Column.Title.SortMarker =smDownEh then begin Sort :=Column.FieldName+' ASC'; Column.Title.SortMarker :=smUpEh; end else begin Sort :=Column.FieldName+' DESC'; Column.Title.SortMarker :=smDownEh; end; end;
//DBGRID 的 排序 procedure DBGridEhTitleClick(Column: TColumnEh); begin with Column do if Field <> nil then if Field.DataSet is Tadoquery then with Field.DataSet as Tadoquery do if active then begin if flag_jiji then sort := Column.FieldName + ' DESC' ELSE sort := Column.FieldName + ' ASC'; flag_jiji:=not flag_jiji; end; end;
DBGridEH1.Columns[X].Title.SortMarker =smUPEh;
然后在DbGridEH1.GridTitleBtnClick()事件写如下代码即可
procedure GridTitleBtnClick(Sender: TObject;
ACol: Integer; Column: TColumnEh);
begin
with ((Sender As TDBGridEh).DataSource.Dataset As TAdoDataSet) do
begin
if Column.Title.SortMarker =smNoneEh then begin
Sort :=Column.FieldName+' ASC';
Column.Title.SortMarker :=smUpEh;
end else if Column.Title.SortMarker =smDownEh then begin
Sort :=Column.FieldName+' ASC';
Column.Title.SortMarker :=smUpEh;
end else begin
Sort :=Column.FieldName+' DESC';
Column.Title.SortMarker :=smDownEh;
end;
end;
procedure DBGridEhTitleClick(Column: TColumnEh);
begin
with Column do
if Field <> nil then
if Field.DataSet is Tadoquery then
with Field.DataSet as Tadoquery do
if active then
begin
if flag_jiji then
sort := Column.FieldName + ' DESC'
ELSE
sort := Column.FieldName + ' ASC';
flag_jiji:=not flag_jiji;
end;
end;