ag-Grid / Reactjs-如何获取columnDefs中的单元格值

时间:2019-02-22 14:01:07

标签: javascript reactjs ag-grid

我在Reactjs应用中使用ag-Grid表,下面是我的代码片段:

const columnsDef = [
  .
  .
  {
    headerName: 'Side',
    field: UI_FIELDS.SIDE,
    width: 70,
    cellRenderer: sideRenderer,
    cellRendererParams: {
      value: "BUY"
    }
  },
  .
  .
]

function sideRenderer(params) {
  const value = _.get(params, 'value') || '';
  const styleSuffix = _.isEmpty(value) ? 'default' : value.toLowerCase();

  return `<span class="side-renderer side-renderer-${styleSuffix}">${value}</span>`;
}

我暂时在value: "BUY"中对cellRendererParams进行了硬编码,但是我希望它实际上等于该列在该单元格中的任何值,可以是BUYSELL

此值会影响应用于文本的CSS,BUY值将变为绿色,而Sell值将变为红色。

如何将value设置为等于单元格中的实际文本,并且不这样进行硬编码?

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作

const columnsDef = [
  {
    headerName: 'Side',
    field: UI_FIELDS.SIDE,
    width: 70,
    cellRenderer: (params) => params.value.toLowerCase() === 'buy' ? `<span class="side-renderer side-renderer-buy">${params.value}</span>`  : `<span class="side-renderer side-renderer-sell">${params.value}</span>
  }
]

我想这就是您想要的?如果没有,请更详细地说明您的需求。

编辑:您并不需要传递单元格渲染参数,您可以使用params.value获取单元格的值

答案 1 :(得分:0)

感谢“ A Ghanima”提到使用params.value,这帮助我提出了以下可行的解决方案

{
  headerName: 'Side',
  field: UI_FIELDS.SIDE,
  width: 70,
  cellRenderer: sideRenderer,
  cellRendererParams: (params) => { value: params.value }
}