Как скрыть строку в несвязанном режиме cxGrid

Как я могу скрыть строку в несвязанном режиме cxGrid?

Прошло уже несколько часов, а я не могу понять. Я гуглил и не смог.


person Ago    schedule 08.05.2014    source источник
comment
Вы пробовали эту рекомендацию на веб-сайте DevExpress?   -  person Guillem Vicens    schedule 08.05.2014
comment
Нет, потому что он предлагает мне использовать ограниченную (с набором данных) cxgrid, и я не хочу, чтобы моя сетка была ограниченной, я хочу, чтобы она была несвязанной.   -  person Ago    schedule 08.05.2014
comment
Тем не менее, вы можете использовать OnFilterRecord.   -  person Uli Gerhardt    schedule 08.05.2014


Ответы (1)


Я только что создал пример приложения с сеткой в ​​unbound mode и использовал OnFilterRecord, как было предложено DevExpress в его recommendation, и все работает нормально.

Ниже вы можете увидеть мой тестовый код:

type
  TForm1 = class(TForm)
    testLevel: TcxGridLevel;
    testGrid: TcxGrid;
    testView: TcxGridTableView;
    testViewColumn1: TcxGridColumn;
    testViewColumn2: TcxGridColumn;
    procedure FormCreate(Sender: TObject);
    procedure tviewDataControllerFilterRecord(
      ADataController: TcxCustomDataController; ARecordIndex: Integer;
      var Accept: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  testView.DataController.RecordCount := testView.DataController.RecordCount + 1;
  testView.DataController.Values[testView.DataController.RecordCount - 1,0] := 'foo';
  testView.DataController.Values[testView.DataController.RecordCount - 1,1] := 'bar';

  testView.DataController.RecordCount := testView.DataController.RecordCount + 1;
  testView.DataController.Values[testView.DataController.RecordCount - 1,0] := 'foo2';
  testView.DataController.Values[testView.DataController.RecordCount - 1,1] := 'bar2';
end;

procedure TForm1.tviewDataControllerFilterRecord(
  ADataController: TcxCustomDataController; ARecordIndex: Integer;
  var Accept: Boolean);
begin
  Accept := (testView.DataController.Values[ARecordIndex,0] <> 'foo');
end;

И результат:

скрытие строки в несвязанном cxGrid

person Guillem Vicens    schedule 08.05.2014