首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在react-data-grid中获得"Select All“复选框的句柄

如何在react-data-grid中获得"Select All“复选框的句柄
EN

Stack Overflow用户
提问于 2018-08-24 05:55:20
回答 2查看 2.3K关注 0票数 0

当react-data-grid中的"select all“复选框被选中时,我想编写一些自定义逻辑。那么,当用户单击"select all“复选框时,如何获得该复选框句柄呢?

下面是指向一些react-data-grid示例http://adazzle.github.io/react-data-grid/#/的链接和指向存储库https://github.com/adazzle/react-data-grid的链接

在我的render()中,我定义了react-data-grid,如下所示。

呈现该表时,它看起来像这样的react data grid demo

代码语言:javascript
复制
let dataGrid = <ReactDataGrid
            ref={node => this.grid = node}
            onGridSort={this.handleGridSort}
            enableCellSelect={true}
            columns={this._columns}
            rowGetter={this.rowGetter}
            rowsCount={this.getSize()}
            minWidth={this.state.width}
            minHeight={this.state.height}
            rowKey="id"
            rowHeight={90}
            headerRowHeight={35}
            rowSelection={{
                showCheckbox: true,
                enableShiftSelect: true,
                onRowsSelected: this.onRowsSelected,
                onRowsDeselected: this.onRowsDeselected,
                selectBy: {
                    indexes: this.state.selectedIndexes
                }
            }
            }
            emptyRowsView={EmptyRowsView}
        >
        </ReactDataGrid>;
EN

回答 2

Stack Overflow用户

发布于 2018-08-25 01:09:37

您可以通过计算选择了多少来实现这一点。

因为onRowsSelected: this.onRowsSelected调用多少行被选中,所以您可以在onRowsSelected()函数中创建您的逻辑。

您的函数应该如下所示:

代码语言:javascript
复制
onRowsSelected = (rows) => {
    this.setState({selectedIndexes: this.state.selectedIndexes.concat(rows.map(r => r.rowIdx))});

    let rowIndexes = rows.map(r => r.rowIdx);

    let totalSelected = rowIndexes.length + this.state.selectedIndexes.length;

    if(this.state.rows.length == totalSelected){
      console.log('All rows have been selected');
      //You argument here when SelectAll
    }
  };
票数 0
EN

Stack Overflow用户

发布于 2018-08-29 03:23:11

ReactDataGrid公开了一个引用,我们可以在自定义组件中访问它。通过它,我们可以访问“全选”复选框。

代码语言:javascript
复制
<ReactDataGrid
            ref={node => this.grid = node}
            ... >
</ReactDataGrid>;

在自定义组件中,我们可以访问“全选”复选框,如下所示

this.grid.selectAllCheckbox.checked; //根据选中/取消选中返回true/false

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51994815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档