AG 网格:可以隐藏自动列吗?

问题描述 投票:0回答:1

AG Grid 是否存在阻止隐藏 AutoColumn 的限制?

在下面的代码中,隐藏适用于

parent
,但不适用于
ag-Grid-AutoColumn

let isHierarchyVisible = gridApi.getColumn('ag-Grid-AutoColumn').isVisible();
gridApi.setColumnsVisible(['parent'], isHierarchyVisible);
gridApi.setColumnsVisible(['ag-Grid-AutoColumn'], !isHierarchyVisible);

用例:分层表有两层(“父级”和“子级”)。在某些情况下,我们的用户想要折叠表格,以便只有子项可见。此外,用户希望按字母顺序对这些孩子进行排序,而不考虑他们的父母。

这是否可以在不创建两个在之间切换的表的情况下实现?我最初的方法是尝试隐藏 AutoColumn 并从那里开始工作。遗憾的是,隐藏是行不通的。 here 的评论似乎表明五年前的答案是“否”,但该帖子的作者认为这是一个问题/错误。

单击下面代码片段中的

Switch View
(在完整页面视图中),查看隐藏如何适用于
parent
,但不适用于
ag-Grid-AutoColumn

let gridApi;
const gridDiv = document.querySelector('#myGrid');
const agGridAutoColumnVisibleValue = document.querySelector('#ag-grid-auto-column-visible-value');

const columnDefs = [
  { field: 'parent', rowGroup: true, hide: true },
  { field: 'child' },
];

const rowData = [
  { parent: 'Parent A', child: 'Child A1' },
  { parent: 'Parent A', child: 'Child A2' },
  { parent: 'Parent B', child: 'A - Child B1' },
  { parent: 'Parent B', child: 'Child B2' },
];

const gridOptions = {
  columnDefs: columnDefs,
  rowData: rowData,
  //autoGroupColumnDef: { field: 'parent' },
  groupDefaultExpanded: -1,
};


function switchView() {
  let isHierarchyVisible = gridApi.getColumn('ag-Grid-AutoColumn').isVisible();
  gridApi.setColumnsVisible(['parent'], isHierarchyVisible);
  gridApi.setColumnsVisible(['ag-Grid-AutoColumn'], !isHierarchyVisible);
  agGridAutoColumnVisibleValue.textContent = gridApi.getColumn('ag-Grid-AutoColumn').isVisible();
  gridApi.refreshCells();
}

gridApi = agGrid.createGrid(gridDiv, gridOptions)
agGridAutoColumnVisibleValue.textContent = gridApi.getColumn('ag-Grid-AutoColumn').isVisible();
<script src="https://cdn.jsdelivr.net/npm/ag-grid-enterprise/dist/ag-grid-enterprise.min.js"></script>
<button onclick="switchView()">Switch View</button>
<div>ag-Grid-AutoColumn.visible value: <code id="ag-grid-auto-column-visible-value"></code></div>
<div id="myGrid" style="height: 600px;width: 600px;" class="ag-theme-alpine"></div>

ag-grid hierarchical-data
1个回答
0
投票

经过反复试验(主要是后者),我得出结论,这是无法完成的,当用户想要展平以便排序时,我诉诸于销毁表并从头开始重新创建它。这在技术上是可行的,但上下文丢失(表格中的导航,例如列的过滤、滚动和折叠被重置)或必须在重新创建时重新应用(产生额外的、不需要的代码/技术债务),其有用性和可用性成本就很高。 。所以仍然感激地接受任何非破坏性的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.