回 帖 发 新 帖 刷新版面

主题:[原创]DBGRID字段值排序问题

DBGRID内的字段值排序怎么搞?
比如:
姓名   编号
张三   01
李四   02
老五   03

我要实现单击姓名,姓名栏的字段值就按升序排列,再点击就降序排列,如此循环?

我是新手啊! 帮忙指教下! 

回复列表 (共3个回复)

沙发

procedure TForm1.DBGrid1CellClick(Column: TColumn);//击点DBGrid1内部排序法
var i : integer;
begin
  for i:= 1 to DBGrid1.Columns.Count do
  begin
    DBGrid1.Columns[i-1].Title.Font.Color := clWindowText;
    DBGrid1.Columns[i-1].Title.Font.Style := [];
  end;
  if ADOTable1.Sort<>(Column.FieldName+' ASC') then
  begin
    ADOTable1.Sort := Column.FieldName+' ASC';
    Column.Title.Font.Color := clRed;
    Column.Title.Font.Style := [fsBold];
  end
  else begin
    ADOTable1.Sort := Column.FieldName+' DESC';
    Column.Title.Font.Color := clBlue;
    Column.Title.Font.Style := [fsBold];
  end;

end;

procedure TForm1.DBGrid1TitleClick(Column: TColumn);//击点DBGrid1上部列标题排序法
var i : integer;
begin
  for i:= 1 to DBGrid1.Columns.Count do
  begin
    DBGrid1.Columns[i-1].Title.Font.Color := clWindowText;
    DBGrid1.Columns[i-1].Title.Font.Style := [];
  end;
  if ADOTable1.Sort<>(Column.FieldName+' ASC') then
  begin
    ADOTable1.Sort := Column.FieldName+' ASC';
    Column.Title.Font.Color := clRed;
    Column.Title.Font.Style := [fsBold];
  end
  else begin
    ADOTable1.Sort := Column.FieldName+' DESC';
    Column.Title.Font.Color := clBlue;
    Column.Title.Font.Style := [fsBold];
  end;

end;

板凳

非常感激
大哥你是我的偶像啊!

3 楼


EhLib

我来回复

您尚未登录,请登录后再回复。点此登录或注册