【问题标题】:How to retrieve the column index in ag-grid?如何检索 ag-grid 中的列索引?
【发布时间】:2022-03-01 22:57:18
【问题描述】:

ag-grid,当我想检索我使用的行索引时:

params.node.id

但是,我找不到对列执行相同操作的方法。 我发现的只是检索columnId,它引用列定义中的字段变量。
即:如果这是列定义:

 {
   headerName: "checkButton 2",
   field: "checkbuttonTwo",
   cellRenderer: "checkButtonComponent",
   width: 150
 }

这个:

params.column.getId()  

会返回:

 checkbuttonTwo

所以我的问题是:
有没有办法检索列索引? 例如:对于第二列,我将有 2 等等。
谢谢

【问题讨论】:

    标签: angular ag-grid


    【解决方案1】:

    我在 TypeScript 中编写了一个帮助函数,用于通过 col id 获取列索引。

    function getColumnIndexByColId(api: ColumnApi, colId: string): number {
        return api.getAllColumns().findIndex(col => col.getColId() === colId);
    }
    

    【讨论】:

      【解决方案2】:

      没有直接获取列索引的方法,但是您可以使用Column API 上的getAllColumns() 方法获取所有列,然后从该数组中找到列的索引。

      更多信息Column APIhere

      【讨论】:

      • 不,我实际上找到了解决这个问题的技巧。稍后会发布答案
      • @AhmedGhrib 你能和大家分享你的解决方案吗?
      【解决方案3】:

      你可以通过运行这个函数得到headerName列:

      function CustomTooltip() {}
      
      CustomTooltip.prototype.init = function(params) {
        var headerName = params.colDef.headerName;
      }
      

      【讨论】:

        【解决方案4】:

        如果您像这样使用 GridApi 检索 columnDefs

        api.getColumnDefs();
        

        返回的数组与表格上显示的数据具有相同的顺序

        【讨论】:

          【解决方案5】:

          对于每一列, 你可以这样定义一个唯一的 id:

          {
                    headerName: "Axa premises",
                    field: "axPr",
                    width: 150,
                    id:0,
                    cellRenderer:'iasaCheckboxRendererComponent'
                      }
          

          你可以通过这种方式访问​​它:

          this.params.column.colDef.id
          

          【讨论】:

            猜你喜欢
            • 2019-02-10
            • 1970-01-01
            • 2023-03-19
            • 2022-01-16
            • 2019-08-17
            • 2021-12-21
            • 2022-01-26
            • 2019-08-22
            • 2018-04-10
            相关资源
            最近更新 更多