From 9f1fbb9ebeb76895e94081d865929490a3547522 Mon Sep 17 00:00:00 2001 From: afc163 Date: Wed, 15 Jul 2015 20:22:56 +0800 Subject: [PATCH] selectRows --- components/table/demo/row-selection.md | 8 ++++---- components/table/index.jsx | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/components/table/demo/row-selection.md b/components/table/demo/row-selection.md index 734112734b..016fde5f8e 100644 --- a/components/table/demo/row-selection.md +++ b/components/table/demo/row-selection.md @@ -37,11 +37,11 @@ var data = [{ // 通过 rowSelection 对象表明需要行选择 var rowSelection = { - onSelect: function(record, selected) { - console.log(record, selected); + onSelect: function(record, selected, selectedRows) { + console.log(record, selected, selectedRows); }, - onSelectAll: function(selected) { - console.log(selected); + onSelectAll: function(selected, selectedRows) { + console.log(selected, selectedRows); } }; diff --git a/components/table/index.jsx b/components/table/index.jsx index b3d6e77cab..bc7822db62 100644 --- a/components/table/index.jsx +++ b/components/table/index.jsx @@ -104,7 +104,6 @@ let AntTable = React.createClass({ this.fetch(); }, handleSelect(rowIndex, checked) { - let selectedRow = this.state.data[rowIndex - 1]; if (checked) { this.state.selectedRowKeys.push(rowIndex); } else { @@ -116,17 +115,25 @@ let AntTable = React.createClass({ selectedRowKeys: this.state.selectedRowKeys }); if (this.props.rowSelection.onSelect) { - this.props.rowSelection.onSelect(selectedRow, checked); + let currentRow = this.state.data[rowIndex - 1]; + let selectedRows = this.state.data.filter((row, i) => { + return this.state.selectedRowKeys.indexOf(i + 1) >= 0; + }); + this.props.rowSelection.onSelect(currentRow, checked, selectedRows); } }, handleSelectAllRow(checked) { - this.setState({ - selectedRowKeys: checked ? this.state.data.map(function(item, i) { + var selectedRowKeys = checked ? this.state.data.map(function(item, i) { return i + 1; - }) : [] + }) : []; + this.setState({ + selectedRowKeys: selectedRowKeys }); if (this.props.rowSelection.onSelectAll) { - this.props.rowSelection.onSelectAll(checked); + let selectedRows = this.state.data.filter((row, i) => { + return selectedRowKeys.indexOf(i + 1) >= 0; + }); + this.props.rowSelection.onSelectAll(checked, selectedRows); } }, handlePageChange: function(current) { -- GitLab