當單擊DBGrid中的標題欄時,進行排序 (轉)

worldblog發表於2007-12-13
當單擊DBGrid中的標題欄時,進行排序 (轉)[@more@]

方法:

關鍵是用Grid的事件 OnTitleClick

首先判斷單擊是哪一列,

  i:=Column.Index;

然後要確定是哪個欄位

  Field:=DBGrid1.Columns[i].FieldName+' ASC';

最後進行排序:

  qryWork.Sort:=Field;

 

上面僅僅是進行升序排列,若要新增降序排列,則要用' DESC'

若要單擊後,升序,再單擊,降序.....

則要用到一個奇偶判斷

我的一個例子

(其中的bSort:Boolean,在FormShow的時候初始化)

procedure TfmPlayVo.DBGrid1TitleClick(Column: TColumn);
var
  i:integer;
  fieldname:string;
begin//排序
  i:=Column.Index;
  if bSort then
  begin
  fieldname:=DBGrid1.Columns[i].FieldName+' ASC';
  bSort:=False;
  end
  else
  begin
  fieldname:=DBGrid1.Columns[i].FieldName+' DESC';
  bSort:=True;
  end;
  qryShow.Sort:=fieldname;
end;

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993028/,如需轉載,請註明出處,否則將追究法律責任。

相關文章