关于dbgrideh中filter的问题,选择了filter下拉列表中的数据,但grid中并不过滤!~
设grid有2个数据项,C1和C2,
grid的STfilter我都选TRUE了
grid对应DataSource1   sql:select C1,C2 from table1; 
然后,要过滤的C1的STfilter属性
DataField:C1
KeyField:C1
ListField:C1
ListSouce:DataSource2    对应的sql:select distinct C1 from table1;
Visible:True这样后,我选择过滤下拉列中的数据,但grid并不过滤

解决方案 »

  1.   

    dbgrideh自带的demo1里面用到了这个,我看了代码,代码中涉及到的都被作者屏蔽掉了,但这个功能照样存在,所有我才想可能是哪地方设置的问题
      

  2.   

    formcreat 事件中加如下代码:  DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter := True;
      

  3.   

    我也遇到这个问题,楼上说的DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter := True;语句不是放在formcreat 事件中吧?------------------------------------------------------------------------------
    也看看我的问题:有以下两个表格,用Table2.Artist来选择Table1中相应的数据:Table1:(qry1, ds1)
    -------+-------+------
    Artist | Album | ...
    -------+-------+------Table2:(qry2, ds2)
    -------+-------
       ID  | Artist
    -------+-------
    程序中这样设置:procedure TfrmMain.FormCreate(Sender: TObject);
    var
      EhCol:TColumnEh;
    begin
        EhGrid.DataSource:= ds1;    EhCol:= EhGrid.Columns.Add;
        EhCol.FieldName:= 'Album';
        EhCol.Width:= 175;
        
        EhCol:= EhGrid.Columns.Add;
        EhCol.FieldName:= 'Artist';
        EhCol.Width:= 175;
        EhCol.STFilter.DataField:= 'Artist';
        EhCol.STFilter.ListSource:= ds2;
        EhCol.STFilter.ListField:= 'Artist';
        EhCol.STFilter.KeyField:= 'Artist';
        EhCol.STFilter.Visible:= True;    EhGrid.STFilter.Local:= True;
        EhGrid.STFilter.Visible:= True;
        qry1.Open;
        qry2.Open;
    end;initialization
      DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter := True;程序运行后,在Artist对应的列有下拉列表可选择,并不能过滤GRID中的数据,不知道是哪里设置不对,请指教。效果图:
    http://img228.photo.163.com/dirtymind/8656498/677686584.jpg