Delphi,默认情况下按网格分组扩展

时间:2017-09-22 13:22:41

标签: delphi devexpress tcxgrid

我在Delphi中有一个网格的程序,我需要添加这个属性来展开按网格中的数据分组的所有折叠。

procedure TProjectForm.dxDBGridEventDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  inherited;
 DrawHighlight(ACanvas);
 TcxGridDbTableView.ViewData.Expand(True);
end;

我收到以下错误:

E2233 Property 'ViewData' inaccessible here

请帮助。我还需要删除此网格中分组数据的可折叠按钮。谢谢

1 个答案:

答案 0 :(得分:4)

你可以毫无问题地致电cxGrid1DBTableView1.ViewData.Expand(True),只要你没有像q中的那样进行绘画活动。但是,如果您使用下面的示例,则实际上不需要执行此操作。

这很好用

procedure TDevexGroupingForm.FormCreate(Sender: TObject);
begin
  cxGrid1DBTableView1.Columns[2].GroupIndex := 0;  //  group by the 3rd column
  //  NOTE:  this step is only necessary if the table view has not been grouped at design-time

  cxGrid1DBTableView1.DataController.Options := cxGrid1DBTableView1.DataController.Options
   + [dcoGroupsAlwaysExpanded];  // this hides the +/- buttons of the grouped nodes

  cxGrid1DBTableView1.DataController.FocusedRowIndex := 0;  // focuses the first group
end;

注意:这已在@Nil的建议中更新。

  • 第一行,只有在设计时尚未对TableView进行分组时才需要设置列的GroupIndex。

  • 设置FocusedRowIndex是可选的,具体取决于您希望TableView最初显示的方式

  • 事实上,通过设置DataController Options属性以包含dcoGroupsAlwaysExpanded的单一步骤,可以实现隐藏+/-分组按钮和扩展所有顶级组节点选项。

顺便提一下设置DataController选项以禁止绘制展开/折叠按钮,这些选项来自文章https://www.devexpress.com/Support/Center/Question/Details/Q105527/how-do-i-hide-the-expand-button-on-a-grid