
Using MUI (Material-UI) DataGrid with a custom button or image involves a few steps. MUI DataGrid is a powerful component for displaying and manipulating tabular data in React applications. Here’s a basic guide on how to integrate custom buttons or images into your DataGrid:
1. Install MUI DataGrid
First, ensure you have MUI DataGrid installed. If not, you can install it via npm:
npm install @mui/x-data-grid
2. Set Up Your DataGrid
Start by setting up a basic DataGrid. You’ll need to import the necessary components and define your columns and rows:
const rows = [
{
id: 1,
agencyname: 'Thomas Hernandez',
agencyphone: '1234567890',
businessname: "DreamHome Realty",
status: "true",
clients: "85",
action: "action",
},
{
id: 2,
agencyname: 'Thomas Hernandez',
agencyphone: '1234567890',
businessname: "DreamHome Realty",
status: "true",
clients: "85",
action: "action",
},
{
id: 3,
agencyname: 'Thomas Hernandez',
agencyphone: '1234567890',
businessname: "DreamHome Realty",
status: "true",
clients: "85",
action: "action",
},
{
id: 4,
agencyname: 'Thomas Hernandez',
agencyphone: '1234567890',
businessname: "DreamHome Realty",
status: "true",
clients: "85",
action: "action",
},
{
id: 5,
agencyname: 'Thomas Hernandez',
agencyphone: '1234567890',
businessname: "DreamHome Realty",
status: "true",
clients: "85",
action: "action",
},
];
3. Adding a Custom Button or Image
To add a custom button or image, you’ll need to create a new column in the DataGrid. This column will use a renderCell function to return the custom element (button or image) for each row.
const columns = [
{ field: 'id', headerName: 'ID', width: 50 },
{
field: 'agencyname',
headerName: 'Agency Name',
width: 200,
},
{
field: 'agencyphone',
headerName: 'Agency Phone',
width: 160,
},
{
field: 'businessname',
headerName: 'Business Name',
width: 200,
},
{
field: 'status',
headerName: 'Status ',
width: 100,
renderCell: () => (
<Chip label="Active" color="success" sx={{
fontWeight: "700", fontSize: "12px",
backgroundColor: alpha(theme.palette.success.dark, 0.16),
color: theme.palette.success.dark,
}} />
),
},
{
field: 'clients',
headerName: 'Clients ',
width: 100,
},
{
field: 'action',
headerName: 'Action ',
width: 200,
renderCell: () => (
<>
<Tooltip title="Edit" placement="top-start">
<IconButton color="primary">
<img src={edit} alt="edit" />
</IconButton>
</Tooltip>
<Tooltip title="Invite To Whatsapp" placement="top-start">
<IconButton color="primary">
<img src={whatsapp} alt="whatsapp" />
</IconButton>
</Tooltip>
</>
),
},
];
4. Render the DataGrid
Finally, render the DataGrid component in your React component:
<DataGrid
sx={{
overflow: "hidden",
borderRadius: "4px",
border: "1px solid #ccc",
"& .MuiDataGrid-cell": { borderBottom: "1px solid rgba(241, 243, 244, 1)" }
}}
rows={rows}
columns={columns}
initialState={{
pagination: {
paginationModel: {
pageSize: 5,
},
},
}}
pageSizeOptions={[5]}
disableRowSelectionOnClick
/>
