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

如何实现Material UI Data Grid水平滚动时首列固定?

Material Data Grid 首列水平滚动固定实现方案

可以实现该效果,优先使用组件内置的官方API实现,手动添加position: sticky不生效是因为Data Grid内部为了适配虚拟滚动、自适应布局,给表格容器、行容器设置了对应的overflow属性和定位规则,会中断sticky的定位上下文,同时容易和组件内置样式冲突。
具体实现步骤:

  • 首先确认你要固定的首列对应的field字段值,比如首列字段为id
  • 给Data Grid组件配置pinnedColumns属性,将首列字段加入左侧固定数组即可,示例代码如下:
// 列定义示例
const columns = [
  { field: 'id', headerName: '序号', width: 100 }, // 需要固定的首列
  { field: 'username', headerName: '用户名', width: 180 },
  { field: 'email', headerName: '邮箱', width: 220 },
  // 其余业务列省略
]

const rows = [
  // 你的业务行数据
]

// 组件调用示例
<DataGrid
  rows={rows}
  columns={columns}
  pinnedColumns={{
    left: ['id'] // 此处配置需要固定在左侧的列的field值
  }}
/>
  • 如果需要自定义固定列的样式,可通过组件自带的.MuiDataGrid-pinnedColumns相关CSS类名修改,无需调整定位属性。

你提供的Data Grid示例参考:
我的Data Grid示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:45:05