extjs grid中 当单击某一单元格时,可以获得该行的数据记录,该怎么做?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extjs grid中 当单击某一单元格时,可以获得该行的数据记录,该怎么做?相关的知识,希望对你有一定的参考价值。

参考技术A 楼上回答为加过selectModel的情况下并改过select
事件绑定后才适用
通用的方式是
在建GRID时,加listener
new
Ext.grid.EditorGridPanel(
.
.
.
.,
listeners:

cellclick
:
function(
Grid,
rowIndex,
columnIndex,e
)//使用cellclick
事件
STORE.getAt(rowIndx);//STORE为你为GRID绑定的store
.



这样既可

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

【中文标题】从 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)

【讨论】:

以上是关于extjs grid中 当单击某一单元格时,可以获得该行的数据记录,该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

extjs如何获取Grid中某一行某一列的值

Delphi中点击DBGrid中某一单元格时,后面出现个按钮可以点进去,出现一个新窗体,进行选择。

ExtJs - 通过单击行中的相应图像来编辑网格单元格

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

角度的ag-grid中的单元格渲染问题

单击表格单元格时将 UIViewController 滚动到顶部