控件,我用过,不太好用,叫什么e什么dbgrid,呵呵不好意思,忘记了,
你可以去深度历险找找

解决方案 »

  1.   

    EHLib包里有个DBGridEH它可以实现!但效果不好!
      

  2.   

    可以的,我以前就这样用,用filter来实现
      

  3.   

    适用于dataset为clientdataset,不过可以作为参考,实现你的程序。
    procedure TFormClassModify.DBGrid1TitleClick(Column: TColumn);
    var i:integer;
        hasindex:boolean;
    begin
      inherited;
      hasindex:=False;
      with TClientDataSet(DataSource.DataSet) do
      begin
        For i:=0 to IndexFieldCount-1 do
        if Column.Field=IndexFields[i] then hasindex:=true;
        if Not hasindex then
        AddIndex(Column.FieldName + 'Index', Column.FieldName, [ixCaseInsensitive],'','',0);
        IndexName := Column.FieldName + 'Index';
      end;
    end;
      

  4.   

    不会吧??!
    你们都不用ADO控件?看这张贴看了一上午了:(procedure TFormClassModify.DBGrid1TitleClick(Column: TColumn);
    begin
      ADODataSet1.Sort := Column.FieldName; //升序
    //  ADODataSet1.Sort := Column.FieldName + ' DESC'; //降序
    end;ADO2.6
      

  5.   

    你用的是dbgrid显示数据吧,只需在OnTitleClick事件中加入以下代码即可  
    Table1.IndexFieldNames:=DbGrid1.Columns[Column.ID].FieldName;
    试试看,若你用的是query控件,把table改成query就成
    这个方法比较简单,大家试试看
      

  6.   

    我不赞成用ADO控件,如果在分布式结构的系统里会降低效率。