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

如何将MUI Data Grid的GridToolbarQuickFilter改为轮廓样式文本框?

修改MUI Data Grid GridToolbarQuickFilter为Outlined样式的方案

方案1:全局主题配置(theme.tsx)

在全局主题中统一修改所有DataGrid的快速筛选输入框样式,无需逐个组件调整:

import { createTheme } from '@mui/material/styles';

const theme = createTheme({
  components: {
    MuiDataGrid: {
      styleOverrides: {
        toolbarQuickFilter: {
          // 隐藏默认的filled样式输入框
          '& .MuiFilledInput-root': {
            display: 'none',
          },
          // 为输入框容器添加Outlined样式的边框
          border: '1px solid rgba(0, 0, 0, 0.23)',
          borderRadius: '4px',
          padding: '0 8px',
          // 调整输入框内边距适配边框
          '& input': {
            padding: '8.5px 0',
          },
        },
      },
    },
  },
});

export default theme;

如果上述样式覆盖不生效,更可靠的方式是直接在主题中替换默认的输入组件:

import { createTheme } from '@mui/material/styles';
import { GridToolbarQuickFilter } from '@mui/x-data-grid';
import { TextField } from '@mui/material';

const theme = createTheme({
  components: {
    MuiDataGrid: {
      defaultProps: {
        components: {
          ToolbarQuickFilter: () => (
            <GridToolbarQuickFilter
              InputComponent={(props) => (
                <TextField {...props} variant="outlined" size="small" />
              )}
            />
          ),
        },
      },
    },
  },
});

方案2:局部组件替换

如果仅需在单个DataGrid中修改,直接在组件层面配置即可:

import { DataGrid, GridToolbarQuickFilter } from '@mui/x-data-grid';
import { TextField } from '@mui/material';

// 自定义快速筛选组件
const CustomQuickFilter = () => (
  <GridToolbarQuickFilter
    InputComponent={(props) => (
      <TextField {...props} variant="outlined" size="small" placeholder="搜索..." />
    )}
  />
);

// 在DataGrid中使用自定义组件
export default function MyDataGrid() {
  return (
    <DataGrid
      columns={yourColumns}
      rows={yourRows}
      components={{
        ToolbarQuickFilter: CustomQuickFilter,
      }}
      // 其他配置项
    />
  );
}

关于之前类名修改无效的说明

GridToolbarQuickFilter内部默认使用filled变体的TextField,对应的样式类是MuiFilledInput-root,如果仅修改MuiOutlinedInput相关类名,无法影响默认的filled样式输入框。需要要么替换输入组件为outlined变体,要么隐藏filled样式并手动添加outlined边框样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:32:45