React - 如何处理 material ui 的数据网格 table 的特定列的单元格单击?
React - how to handle a cell click of a specific column of a datagrid table of material ui?
我正在使用名为 DataTable 的 Material ui 组件,但我不知道如何检测特定列中任何单元格中的点击
这是我的 table,我想处理“操作”列中任意单元格中的点击:
下面是我的组件代码:
import * as React from 'react';
import { DataGrid } from '@mui/x-data-grid';
import { PropTypes } from 'prop-types';
export default function DataTable({ rows, columns }) {
return (
<div style={{ height: 400, width: '100%' }}>
<DataGrid
rows={rows}
columns={columns}
pageSize={5}
rowsPerPageOptions={[5]}
checkboxSelection
/>
</div>
);
}
DataTable.propTypes = {
rows: PropTypes.arrayOf(
PropTypes.shape({
conteudo: PropTypes.string,
disciplina: PropTypes.string,
curso: PropTypes.string,
data: PropTypes.string,
})
).isRequired,
// eslint-disable-next-line react/forbid-prop-types
columns: PropTypes.array.isRequired,
};
您可以通过将 onCellClick
属性传递给 DataGrid
来处理任何列上的任何点击事件,如下所示:
import { useState } from "react";
import { DataGrid } from "@mui/x-data-grid";
export default function DataTable({ rows, columns }) {
const [finalClickInfo, setFinalClickInfo] = useState(null);
const handleOnCellClick = (params) => {
setFinalClickInfo(params);
};
return (
<div style={{ height: 400, width: "100%" }}>
<DataGrid
rows={rows}
columns={columns}
pageSize={5}
rowsPerPageOptions={[5]}
checkboxSelection
onCellClick={handleOnCellClick}
/>
{finalClickInfo &&
`Final clicked id = ${finalClickInfo.id},
Final clicked field = ${finalClickInfo.field},
Final clicked value = ${finalClickInfo.value}`}
</div>
);
}
您可以从 onCellClick
函数返回的值访问任何 属性,例如 id
、field
、value
等。您可以查看 this sandbox 以了解此用法的实际工作示例。
我正在使用名为 DataTable 的 Material ui 组件,但我不知道如何检测特定列中任何单元格中的点击
这是我的 table,我想处理“操作”列中任意单元格中的点击:
下面是我的组件代码:
import * as React from 'react';
import { DataGrid } from '@mui/x-data-grid';
import { PropTypes } from 'prop-types';
export default function DataTable({ rows, columns }) {
return (
<div style={{ height: 400, width: '100%' }}>
<DataGrid
rows={rows}
columns={columns}
pageSize={5}
rowsPerPageOptions={[5]}
checkboxSelection
/>
</div>
);
}
DataTable.propTypes = {
rows: PropTypes.arrayOf(
PropTypes.shape({
conteudo: PropTypes.string,
disciplina: PropTypes.string,
curso: PropTypes.string,
data: PropTypes.string,
})
).isRequired,
// eslint-disable-next-line react/forbid-prop-types
columns: PropTypes.array.isRequired,
};
您可以通过将 onCellClick
属性传递给 DataGrid
来处理任何列上的任何点击事件,如下所示:
import { useState } from "react";
import { DataGrid } from "@mui/x-data-grid";
export default function DataTable({ rows, columns }) {
const [finalClickInfo, setFinalClickInfo] = useState(null);
const handleOnCellClick = (params) => {
setFinalClickInfo(params);
};
return (
<div style={{ height: 400, width: "100%" }}>
<DataGrid
rows={rows}
columns={columns}
pageSize={5}
rowsPerPageOptions={[5]}
checkboxSelection
onCellClick={handleOnCellClick}
/>
{finalClickInfo &&
`Final clicked id = ${finalClickInfo.id},
Final clicked field = ${finalClickInfo.field},
Final clicked value = ${finalClickInfo.value}`}
</div>
);
}
您可以从 onCellClick
函数返回的值访问任何 属性,例如 id
、field
、value
等。您可以查看 this sandbox 以了解此用法的实际工作示例。