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

如何自定义MUI Datagrid的GridToolbar添加自定义按钮和文本

MUI DataGrid 自定义GridToolbar操作指南

MUI DataGrid原生支持工具栏自定义,不需要hack源码,直接通过官方暴露的slots配置就能实现添加自定义按钮、文本的需求,有两种常用实现方案:

  • 方案一:保留默认工具栏功能,追加自定义内容
    如果你需要保留默认的列显隐控制、密度调整、导出、快速筛选这些原生工具栏按钮,只额外加自己的内容,可以封装自定义工具栏组件嵌套默认GridToolbar,再插入自定义元素即可,示例代码:
import { DataGrid, GridToolbar, GridToolbarContainer } from '@mui/x-data-grid';
import { Button, Typography } from '@mui/material';

const CustomToolbar = () => {
  return (
    <GridToolbarContainer>
      {/* 加载默认工具栏的所有原生功能 */}
      <GridToolbar />
      {/* 插入自定义文本,可自行调整样式、间距 */}
      <Typography variant="body2" sx={{ mx: 2 }}>
        自定义提示文本
      </Typography>
      {/* 插入自定义按钮,绑定对应业务逻辑 */}
      <Button
        size="small"
        variant="outlined"
        onClick={() => {
          // 这里写按钮点击后的业务逻辑
        }}
      >
        自定义操作
      </Button>
    </GridToolbarContainer>
  );
};

// DataGrid组件中传入slots配置替换工具栏
<DataGrid
  rows={yourTableData}
  columns={yourColumnsConfig}
  slots={{
    toolbar: CustomToolbar
  }}
/>
  • 方案二:完全自定义工具栏结构
    如果你不需要默认工具栏的任何原生按钮,要完全自己控制工具栏的所有内容,可以直接在GridToolbarContainer容器内编写自己需要的所有文本、按钮元素,不需要嵌套默认GridToolbar组件即可。

提示:GridToolbarContainer是官方提供的工具栏专用布局容器,自带和原生工具栏一致的内边距、flex布局、元素间距规则,能保证自定义内容和DataGrid整体视觉风格统一,不需要额外调整布局样式。

附参考效果(即你提到的需要自定义的目标工具栏):
这是我想要自定义的工具栏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 07:54:33