You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

纯JS项目中如何在AG Grid中正确显示行号?

AG Grid 显示行号的正确方法

关于rowNumbers配置项

AG Grid 社区版没有rowNumbers这个有效配置项,你添加的该配置不会生效,这是旧版本或第三方衍生版本的废弃配置。

社区版实现行号显示的两种方式

方式1:自定义序号列(推荐)

直接在columnDefs中添加一列,通过valueGetter获取行索引并转换成序号(行索引从0开始,需+1),示例代码如下:

const columnDefs = [
  { 
    headerName: "STT", 
    valueGetter: params => params.node.rowIndex + 1,
    width: 80,
    sortable: false, // 禁止排序
    filter: false,   // 禁止筛选
    resizable: true  // 允许调整列宽(可选)
  },
  { field: "athlete" },
  { field: "country" },
  { field: "sport" },
  { field: "year" },
  { field: "gold" },
  { field: "silver" },
  { field: "bronze" },
];

const gridOptions = {
  defaultColDef: {
    flex: 1,
    minWidth: 100,
  },
  // 移除无效的rowNumbers配置
  columnDefs: columnDefs,
  rowData: null,
};

document.addEventListener("DOMContentLoaded", () => {
  const gridDiv = document.querySelector("#myGrid");
  const gridApi = agGrid.createGrid(gridDiv, gridOptions);

  fetch("https://www.ag-grid.com/example-assets/olympic-winners.json")
    .then((response) => response.json())
    .then((data) => {
      gridApi.setGridOption("rowData", data);
    });
});

对应的HTML代码不变:

<script src="https://cdn.jsdelivr.net/npm/ag-grid-community/dist/ag-grid-community.min.js"></script>
<div id="myGrid" style="height: 500px"></div>

方式2:使用cellRenderer自定义渲染

如果需要更灵活的行号展示(比如添加前缀、格式化样式),可以用cellRenderer

{ 
  headerName: "STT", 
  cellRenderer: params => `<span style="color: #666">${params.node.rowIndex + 1}</span>`,
  width: 80,
  sortable: false,
  filter: false
}

企业版额外方案

如果你使用AG Grid企业版,可以通过状态栏组件快速添加全局行号面板,配置如下:

const gridOptions = {
  // 其他配置...
  statusBar: {
    statusPanels: [
      { statusPanel: 'agRowNumberComponent', align: 'left' }
    ]
  }
};

内容的提问来源于stack exchange,提问作者Đạt Nguyễn Đình

火山引擎 最新活动