我有一个TcxGrid,我在其中定义了一个过滤器,但由于我在网格中有一些复选框和按钮,它们也显示在过滤器中。 我已经尝试了几乎所有东西来摆脱它们,但没有任何作用。 DevExpress的答案也没有帮助(如果我有时间实际改变其他组件)
有没有人使用过这个并且可能有我可以使用的解决方案?
答案 0 :(得分:2)
下面的项目显示了数据行下方的过滤器框(我认为你在谈论它)并且没有任何 为网格列定义的控件。我希望这是你追求的那种。
顺便说一下,我用最近版本的TcxGrid做了这个,可以追溯到今年早些时候,v.15 iirc。
更新我承认我对您的问题感到困惑,因为filter row
中显示控件的原因当然是允许用户指定过滤器的值,所以如果你要隐藏它们,用户无法使用filter row
。如果你想要一个比我更好的答案,我想你需要更新你的q来解释你正在尝试做什么。
我不确定您是否知道,但过滤器框具有Position
属性,可以设置该属性,以便该框显示在数据行上方。
代码
TForm1 = class(TForm)
cxGrid1DBTableView1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
CDS1: TClientDataSet;
CDS1Marked: TBooleanField;
CDS1ID: TIntegerField;
DS1: TDataSource;
cxGrid1DBTableView1ID: TcxGridDBColumn;
cxGrid1DBTableView1Marked: TcxGridDBColumn;
CDS1Value: TIntegerField;
cxGrid1DBTableView1Value: TcxGridDBColumn;
procedure FormCreate(Sender: TObject);
private
protected
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
CDS1.CreateDataSet;
CDS1.InsertRecord([0, False, 99]);
CDS1.InsertRecord([1, False, 88]);
CDS1.InsertRecord([2, False, 77]);
CDS1.InsertRecord([3, False, 66]);
CDS1.First;
end;
end.
DFM
object Form1: TForm1
Left = 267
Top = 103
Caption = 'MADefaultForm'
ClientHeight = 360
ClientWidth = 454
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
Scaled = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object cxGrid1: TcxGrid
Left = 0
Top = 0
Width = 454
Height = 360
Align = alClient
TabOrder = 0
object cxGrid1DBTableView1: TcxGridDBTableView
Navigator.Buttons.CustomButtons = <>
FilterBox.Visible = fvAlways
DataController.DataSource = DS1
DataController.Filter.Active = True
DataController.KeyFieldNames = 'ID'
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
FilterRow.Visible = True
object cxGrid1DBTableView1ID: TcxGridDBColumn
DataBinding.FieldName = 'ID'
end
object cxGrid1DBTableView1Marked: TcxGridDBColumn
DataBinding.FieldName = 'Marked'
Width = 97
end
object cxGrid1DBTableView1Value: TcxGridDBColumn
DataBinding.FieldName = 'Value'
PropertiesClassName = 'TcxTextEditProperties'
end
end
object cxGrid1Level1: TcxGridLevel
GridView = cxGrid1DBTableView1
end
end
object CDS1: TClientDataSet
Aggregates = <>
Params = <>
Left = 48
Top = 24
object CDS1ID: TIntegerField
FieldName = 'ID'
end
object CDS1Marked: TBooleanField
FieldName = 'Marked'
end
object CDS1Value: TIntegerField
FieldName = 'Value'
end
end
object DS1: TDataSource
DataSet = CDS1
Left = 88
Top = 24
end
end