You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MUI DataGrid中添加每行的编辑/删除自定义按钮

解决DataGrid每行添加自定义操作按钮的问题

要在DataGrid的每行添加编辑、删除等操作按钮,只需修改列配置中的actions列,通过render属性自定义单元格内容即可,以下是完整实现代码:

1. 导入所需组件(若使用MUI图标)

import { EditIcon, DeleteIcon } from '@mui/icons-material';
import { IconButton, Box } from '@mui/material';

2. 修改列配置

const columns = [
    { field: 'model_id', headerName: 'ID', width: 70, sortable: false },
    { field: 'model_code', headerName: 'Model Code', width: 130 },
    { field: 'model_description', headerName: 'Description', width: 400 },
    { 
        field: 'actions', 
        headerName: 'Actions', 
        width: 400,
        // 自定义单元格渲染逻辑
        renderCell: (params) => {
            // 编辑按钮点击逻辑
            const handleEdit = () => {
                console.log('待编辑行数据:', params.row);
                // 此处添加实际编辑逻辑,比如打开编辑弹窗、跳转编辑页面等
            };

            // 删除按钮点击逻辑
            const handleDelete = () => {
                console.log('待删除行ID:', params.row.model_id);
                // 此处添加实际删除逻辑,比如弹出确认框、调用删除接口等
            };

            return (
                <Box sx={{ display: 'flex', gap: 1 }}>
                    <IconButton color="primary" onClick={handleEdit}>
                        <EditIcon />
                    </IconButton>
                    <IconButton color="error" onClick={handleDelete}>
                        <DeleteIcon />
                    </IconButton>
                    {/* 可按需添加更多操作按钮,比如详情按钮 */}
                </Box>
            );
        }
    }
];

3. DataGrid组件保持原有结构

<DataGrid
    rows={models}
    columns={columns}
    getRowId={(row) => row.model_id}
    pageSize={5}
    rowsPerPageOptions={[5]}
    checkboxSelection 
/>

关键说明

  • renderCell函数接收的params对象包含当前行的完整数据(params.row),可直接获取行ID、字段值等信息。
  • 按钮样式可通过MUI组件属性自定义,也可替换为普通Button组件适配不同需求。
  • 点击事件内可根据业务场景添加具体逻辑,比如接口调用、状态更新等。

内容的提问来源于stack exchange,提问作者Pusoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:25:30