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

如何在动态生成列的ag-grid中设置只读列与复选框列?

Ag-Grid动态列配置:设置只读列与复选框列

你可以在动态生成列定义的阶段直接指定列属性,这是最直接高效的方式;也可以在列生成后通过API修改列配置。以下是具体实现:

方法一:生成列定义时直接配置(推荐)

在遍历字段名创建列定义的过程中,根据字段名判断并添加对应的editable、cellRenderer等属性:

fetch('https://dev.perfectiononwheels.com/pricedataJSON/pricelistJson.json')
  .then(function(response) {
    return response.json();
  }).then(function(data) {
    const colDefs = [];
    const keys = Object.keys(data[0]);
    
    keys.forEach(key => {
      const colDef = { field: key };
      
      // 设置指定字段为只读(不可编辑)
      if (key === 'id' || key === 'productName') { // 替换为你的只读字段名
        colDef.editable = false;
      } else {
        // 其他列允许编辑
        colDef.editable = true;
      }
      
      // 将指定字段设为复选框列
      if (key === 'isAvailable') { // 替换为你的复选框字段名
        colDef.cellRenderer = 'agCheckboxCellRenderer';
        colDef.checkboxSelection = true;
        colDef.headerCheckboxSelection = true; // 可选:给表头添加全选复选框
      }
      
      colDefs.push(colDef);
    });

    gridOptions.api.setColumnDefs(colDefs);
    gridOptions.api.setRowData(data);
  });

方法二:列生成后修改配置

如果需要在列已经渲染后调整属性,可以通过getColumnDefs()获取所有列定义,修改后再重新设置:

fetch('https://dev.perfectiononwheels.com/pricedataJSON/pricelistJson.json')
  .then(function(response) {
    return response.json();
  }).then(function(data) {
    // 先动态生成基础列定义
    const colDefs = [];
    const keys = Object.keys(data[0]);
    keys.forEach(key => colDefs.push({ field: key }));
    
    gridOptions.api.setColumnDefs(colDefs);
    gridOptions.api.setRowData(data);

    // 后续修改列属性
    const updatedColDefs = gridOptions.api.getColumnDefs();
    updatedColDefs.forEach(colDef => {
      // 设置只读列
      if (colDef.field === 'id') {
        colDef.editable = false;
      }
      // 设置复选框列
      if (colDef.field === 'isAvailable') {
        colDef.cellRenderer = 'agCheckboxCellRenderer';
        colDef.checkboxSelection = true;
      }
    });
    gridOptions.api.setColumnDefs(updatedColDefs);
  });

注意事项

  • 复选框列对应的字段值建议为布尔类型(true/false),确保渲染正常。
  • headerCheckboxSelection用于开启表头全选复选框,不需要可以去掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:05:26