您可以为ag-grid Angular中的不同行指定其他customCellRenderer吗

时间:2019-05-10 09:06:41

标签: angular ag-grid ag-grid-ng2 ag-grid-angular

我建立了一个简单的网格:
enter image description here

用户从ParenColumn的列表1中选择一个选项。
根据他选择的选项,第二列中将显示不同的列表。 例如,如果他选择option3,则列表3将显示在相应行的第二列中。
问题是:由于第二列中的customCellRenderer应用于所有行,因此相同的列表将显示在所有行中,如图所示。
我的问题是:是否可以“赋予”每一行自己的cellRenderer?
这是ChildColumn的定义:

 {
          headerName: "ChildColumn",
          field: "chdCol",
          cellRenderer:  (params) => {
            return(
                   `       <select class="form-control">
                <br>`
                +`<option>` +
                this.receivedChosenOptionfromCol1[0]
                +`</option>`
                +`<option>` +
                this.receivedChosenOptionfromCol1[1]
                +`</option>` +
                `<option>` +
                this.receivedChosenOptionfromCol1[2]
                +`</option>` +
                `<option>` +
                this.receivedChosenOptionfromCol1[3]
                +`</option>` +
              `</select>
            `)
          } 

要查看我用来实现此网格及其功能的全部代码,请在我回答自己的问题的地方查看以下StackOverflow代码:
How to refresh a column B in ag-grid based on a change that occured in another column A

谢谢:)

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作

      cellRenderer:  this.getCellRenderer

然后定义getCellRenderer函数

function getCellRenderer(params) {
    // Check condition to render renderer 1 or 2
    // Replace condition
    if (true) {
        return "<h1> Component 1 </h1>"
    } else {
        return "<h1> Component 2 </h1>"
    }
}

为单元格渲染器提供功能使其动态,因为每次更改网格值时都会调用它。