Quantcast
Channel:
Viewing all articles
Browse latest Browse all 74

cxGrid - Data row fixing

$
0
0
В версии 2017.2.2 появилась возможность закреплять вверху или внизу сетки несколько записей, как программно, так и пользователю с помощью мышки.

За это отвечают несколько свойств:
1. Нужно включить GridView.OptionsCustomize.DataRowFixing, чтобы включить этот функционал.

2. Определить, как будет выглядеть в таблице значок, который будет видеть пользователь GridView.FixedDataRows.PinVisibility (rpvAlways, rpvHotTrack or rpvRowHotTrack), если программист собирается дать пользователю управлять закреплёнными строками:
Картинка с другого сайта.

Чтобы программно управлять закреплёнными строками (row), воспользуйтесь свойством DataController.RowFixedState:
cxGrid1DBTableView1.DataController.RowFixedState[0] := rfsFixedToTop; 


Пример цикла:
procedure TForm1.FixRows2;Var
 colName: TcxGridDBColumn;
 iCurRow: integer;
 ARowInfo:  TcxRowInfo;begin
  colName := cxGrid1DBTableView1.GetColumnByFieldName(constMyColNAME);ifnot Assigned(colName) then exit;

  cxGrid1DBTableView1.BeginUpdate;
  tryfor iCurRow := 0 to Pred(cxGrid1DBTableView1.DataController.RowCount) dobegin
      ARowInfo := cxGrid1DBTableView1.DataController.GetRowInfo(iCurRow);if ARowInfo.Level < cxGrid1DBTableView1.DataController.Groups.GroupingItemCount then
        Continueelsebegin//если есть нужное значение, закрепляем строкуif cxGrid1DBTableView1.DataController.Values[ARowInfo.RecordIndex, colName.Index] = 'my value 123'then
           cxGrid1DBTableView1.DataController.RowFixedState[iCurRow] := rfsFixedToTop;end;end;// forfinally
    cxGrid1DBTableView1.EndUpdate;end;end;


Ист:
https://www.devexpress.com/Support/Center/Question/Details/K18187/how-to-fix-a-row
http://www.sql.ru/forum/1296597/cxgrid-fixed-data-rows

Viewing all articles
Browse latest Browse all 74