从 Ag-Grid 中单击的单元格返回值

Posted

技术标签:

【中文标题】从 Ag-Grid 中单击的单元格返回值【英文标题】:Returning the value from the clicked cell in Ag-Grid 【发布时间】:2019-09-06 04:52:36 【问题描述】:

我正在尝试在 ag-Grid 中单击单元格时返回行数据。我已经定义了以下组件,我将其传递到下方显示的cellRendererFramework

import  ICellRendererParams  from "ag-grid-community";
import * as React from "react";
import  CellValue  from "./ClickableCell.style";

export default class ClickableCell extends React.Component<ICellRendererParams> 
    public render() 
        return (
            // this works when the clickable cell is clicked
            // but i'm trying to return this data to the component that will be rendering the grid
            <div onClick=() => console.log(this.props.data)>
                this.props.value
            </div>
        );
    

以下是在定义列标题和行数据的组件中。

const headers = [
     headerName: "Name", field: "name", cellRendererFramework: ClickableCell ,
     headerName: "Age", field: "age" ,
];

如何在定义标题的组件中接收单击的行数据?谢谢!

编辑:

我添加了代码的一些工作版本:https://codesandbox.io/s/7qlvyk901

【问题讨论】:

为您的问题提供 plunk 链接 - 尝试解决它 @Paritosh 我已将其添加到原始帖子中,但由于某种原因,网格似乎无法正确呈现。不过,我想要实现的基本理念就在那里。 【参考方案1】:

为什么不使用 ag-grids 事件处理程序,在本例中是 onCellClicked 事件:

    <AgGridReact
      onCellClicked=this.onCellClicked
      columnDefs=this.props.Headers
      rowData=this.props.Data
    />

任何单元格事件都会为您提供以下参数:

栏目:栏目 colDef: ColDef 值:任意

【讨论】:

【参考方案2】:

我没有与 Ag-Grid 合作过,但我会在 ClickableCell 中引发一个事件并让父亲处理该事件。

export default class ClickableCell extends React.Component<ICellRendererParams> 
    public render() 
        return (
            <div onClick=() => this.props.onEvent(this.props.data)>
                this.props.value
            </div>
        );
    

然后在父组件上,我将定义处理该事件并保存在状态中的函数。

handleEvent = data => 
  console.log(data);
  this.setState( data );
;

并通过调用该组件的道具传递该函数。如果它只是在那个const 你应该也传递道具不是吗?

<ClickableCell data=this.state.data value=? onEvent=this.handleEvent)

【讨论】:

以上是关于从 Ag-Grid 中单击的单元格返回值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 项目中自动刷新 ag-grid 中的单元格

Swift 数组不返回所有值

AG-Grid:如何根据同一行中其他单元格中的值更改单元格的颜色

如何从 ag-grid 单元格中打开模态对话框单击 Angular 6

Ag-grid - 具有自定义单元格编辑器时是不是忽略值解析器?

Angular Ag-grid(值获取器不导出单元格的渲染值)