5

在 React 中,基于文档 [这里][1],我正在尝试使用以下代码选择一个 AG Grid 行进行删除:

    class MyComponent extends Component {
      constructor(props) {
        this.state={rowSelection: 'single'}
      }

      onGridReady(params) {
        this.gridApi = params.api
        this.columnApi = params.columnApi
      }

      onRemoveSelected() {
        const selectedData = this.gridApi.getSelectedRows();
        const res = this.gridApi.updateRowData({ remove: selectedData })
      }
    }

    render() {
      return(
        <div>
          <button onClick={this.onRemoveSelected.bind(this)}>Remove Selected</button>
          <AgGridReact
            id="myGrid"
            {...gridOptions}
            onGridReady={this.onGridReady}
            rowSelection={this.state.rowSelection}
           />
          </div>
      )
    }

但是该行没有选择。此外,使用不同的代码变体,有时我会收到此控制台警告:

cannot select node until id for node is known 

提前致谢 [1]:https ://www.ag-grid.com/javascript-grid-data-update/

4

2 回答 2

3

尝试遍历节点并为每个节点添加一个 id。我不相信这是最佳解决方案,但它确实有效。

onGridReady(params) {
    this.gridApi = params.api;
    this.gridColumnApi = params.columnApi;

    let idSequence = 0;
    this.gridApi.forEachNode( function(rowNode, index) {
      rowNode.id = idSequence++;
    });
  }
于 2018-09-11T18:58:18.463 回答
2

Ag-Grid 网格属性参考
Ag-Grid 有一个名为 gridOptions 的道具,它接受一个对象。您可以从上面的参考资料中找到可以在此对象中放入什么样的键,但您要查找的键是getRowNodeId.

示例(假设您的行数据包含一个名为 的键id):

<AgGridReact
    gridOptions={{
        getRowNodeId : item => item.id
    }}
    {...gridOptions}
/>
...
于 2019-06-05T18:10:48.503 回答