具有反应的ag-grid中的可点击url值

Vla*_*zki 6 reactjs ag-grid ag-grid-react

我正在ag-grid尝试构建一个表,如果用户单击列值,它们将被带到包含该条目详细信息的页面.

如何在ag-grid中使单元格值可单击?

我已经尝试使用valueGetter: this.urlValueGettercolumnDefs和:

urlValueGetter(params) {
  return '<a href=\'bill/' + params.data.id + '\'>details</a>';
}
Run Code Online (Sandbox Code Playgroud)

但它现在看起来像这样:

在此输入图像描述

然后我尝试使用template: '<a href=\'bill/{id}\'>details</a>'哪个显示单元格文本可点击但不更换ID.我认为如果我能以某种方式传入id,这可能会有效吗?

在此输入图像描述

thi*_*dot 5

您要为此使用cellRenderer,而不是valueGetter

https://www.ag-grid.com/javascript-grid-cell-rendering-components/#gsc.tab=0

以上文档中的随机示例:

// put the value in bold
colDef.cellRenderer = function(params) {
    return '<b>' + params.value.toUpperCase() + '</b>';
}
Run Code Online (Sandbox Code Playgroud)

如果您不想附加任何事件,则可以在链接中返回一个字符串(更轻松)。

否则,这是colDef如果您要将事件附加到元素的示例:

{
    headerName: 'ID',
    field: 'id',
    cellRenderer: (params) => {
        var link = document.createElement('a');
        link.href = '#';
        link.innerText = params.value;
        link.addEventListener('click', (e) => {
            e.preventDefault();
            console.log(params.data.id);
        });
        return link;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如上所述,但是通过使用cellRendererFramework,单元格渲染器也可以是React组件。 (3认同)
  • 如果确实需要,请尝试仅使用React组件版本,它可能比本机DOM版本慢。对于许多列,或者在较慢的计算机上,或者在尝试保持网格快速滚动时,这更重要。 (2认同)