如何使用 Material-UI DataGrid 保存列状态?
Posted
技术标签:
【中文标题】如何使用 Material-UI DataGrid 保存列状态?【英文标题】:How do I save column state using Material-UI DataGrid? 【发布时间】:2021-10-08 04:14:28 【问题描述】:我有多个表,每个表有 19 列。列都是相同的,但显示的数据不同,并且来自外部数据库。我希望用户能够选择他们想要隐藏/显示的列,并将其应用于每个呈现的表格。
我了解使用 Context 来保存状态,这就是我的目标。我想我的问题更多的是“我需要从 Column 组件中保存什么才能保存每列的状态”?
【问题讨论】:
【参考方案1】:这当然是可能的。 这是我保存列状态的方法。
我使用了componentsProps
属性和onChange
。
这是准确的代码
<DataGrid
rows=rows
componentsProps=
preferencesPanel:
onChange: event =>
const tempCols = [...columns];
//const hideCol = '';'
tempCols.forEach((col, i) =>
if (col.field === event.target.name)
tempCols[i].hide = !tempCols[i].hide;
// hideCol = hideCol.concat(col.field + ',');
);
setColumns(tempCols);
/>
<Button color="primary" onClick=() =>
methodNametoSavestate(columns)>
Save as preference
</Button>
【讨论】:
以上是关于如何使用 Material-UI DataGrid 保存列状态?的主要内容,如果未能解决你的问题,请参考以下文章
当页面为 1 时,Material-UI Datagrid 分页从第二页开始
想要改变 React Material-UI DataGrid 过滤器菜单弹出的位置
Material-UI DataGrid:从状态中删除一行导致无法读取属性错误
Material Ui DataGrid IsRowSelectable 在 React ts 中不起作用
ReactJS + Material-UI:如何在每个 TableRow 中使用 Material-UI 的 FlatButton 和 Dialog?