【发布时间】:2021-12-06 10:37:52
【问题描述】:
我正在使用 MUI DataGrid 来显示和过滤某些表格数据。
DataGrid 工具栏包含用于过滤、排序等的按钮。我想添加一个自定义按钮,用于显示某些预定义配置的选项。例如,假设DataGrid 具有从 ColA 到 ColH 的 8 列。如果有人从菜单中选择了预设 A,DataGrid 只显示从 A 到 C 的列。同样,如果有人从菜单中选择预设 B,DataGrid 会显示列 B 和 F。这些列也反映在单击列按钮面板。
如何实现此功能?
我能够在工具栏中添加一个自定义按钮。但是,无法找到基于所选预设以编程方式更新列可见性的方法。
我尝试使用文档中的以下示例访问DataGrid 状态:
function CustomRowCounter() {
const { rows } = useGridSlotComponentProps();
return <div>Row count: {rows.length} </div>;
}
但是,它会引发错误:
错误:Material-UI X:找不到数据网格上下文。它看起来 就像您在 DataGrid 或 DataGridPro 之外渲染组件一样 父组件。如果您捆绑多个 数据网格的版本。
我使用DataGridPro如下:
import { DataGridPro,
GridToolbar,
GridToolbarColumnsButton,
GridToolbarContainer,
GridToolbarDensitySelector,
GridToolbarExport,
GridToolbarFilterButton,
useGridApiRef,
useGridSlotComponentProps } from '@mui/x-data-grid-pro';
以下是依赖项:
"@material-ui/core": "^4.12.3",
"@material-ui/icons": "^4.11.2",
"@mui/x-data-grid-pro": "^4.0.1",
【问题讨论】:
-
你能告诉我你是如何使用
DataGridPro组件的吗? -
我正在使用未经许可的产品,因为我只是在试验它。但我们将购买 XGrid 许可证。从“@mui/x-data-grid-pro”导入 {DataGridPro};并且在渲染时写入
标签: reactjs datagrid material-ui state