点击dbgrid上的标题进行排列的时候,不知道大家是如何做的呢?我是在TitleClick事件中写代码,对表打开后进行升降序排列,问题也就来了。。问题一:当我模糊查询记录的时候,在dbgrid显示所查询的记录,点击dbgrid的标题,却把所以的记录都显示出来了!这个该怎么办呀?问题二:当我点击dbgrid标题,用select * from 表 order by 字段1,字段2 asc进行排列,为什么点击后,还是按第一个字段排列?对一个字段的话,排列是成功的,以下是我的代码!procedure TForm2.DBGrid1TitleClick(Column: TColumn);
var
pailie:boolean;  
   if (Column.Title.Caption='编号') or (Column.Title.Caption='年龄')  then
  begin
    pailie:=not bSort;   
    if pailie then
    begin
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.add('select * from 职工表 order by 编号,年龄 desc');
      adoquery1.Open;   //点击编号的标题对表进行降序排列
    end
    else
    begin
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.sql.add('select * from 职工表 order by 编号,年龄 asc');
      adoquery1.Open;  //点击编号的标题对表进行升序排列

解决方案 »

  1.   

    我知道问题的所在,可我改不了呀,如何判断点击的标题,然后进行排列,那我不是要写好几句的if end(年龄if end,编号if  end).还有就是我这样是对表进行排列,碰到查询时候就出现问题了,那怎么对dbgrid中所存在的记录进行排列呢?帮忙呀各位!
      

  2.   

    点击表头,用不着再select一次吧,好像adoquery有个sort方法!
      

  3.   

    控件ehlib可以实现,不知你使用不使用第三方的控件。