diff --git a/components/table/demo/row-selection-props.md b/components/table/demo/row-selection-props.md
index 7740a541a3..cfe6473a09 100644
--- a/components/table/demo/row-selection-props.md
+++ b/components/table/demo/row-selection-props.md
@@ -47,12 +47,15 @@ const rowSelection = {
disabled: record.name === '胡彦祖' // 配置无法勾选的列
};
},
+ onChange(selectedRowKeys) {
+ console.log('selectedRowKeys changed: ' + selectedRowKeys);
+ },
onSelect: function(record, selected, selectedRows) {
console.log(record, selected, selectedRows);
},
onSelectAll: function(selected, selectedRows) {
console.log(selected, selectedRows);
- }
+ },
};
ReactDOM.render(
diff --git a/components/table/demo/row-selection-radio-props.md b/components/table/demo/row-selection-radio-props.md
index d8fa9578dd..ac87677e68 100644
--- a/components/table/demo/row-selection-radio-props.md
+++ b/components/table/demo/row-selection-radio-props.md
@@ -51,9 +51,6 @@ const rowSelection = {
onSelect: function(record, selected, selectedRows) {
console.log(record, selected, selectedRows);
},
- onSelectAll: function(selected, selectedRows) {
- console.log(selected, selectedRows);
- }
};
function rowKey(record) {
diff --git a/components/table/demo/row-selection.md b/components/table/demo/row-selection.md
index 17e2d59335..980f4bd019 100644
--- a/components/table/demo/row-selection.md
+++ b/components/table/demo/row-selection.md
@@ -41,6 +41,9 @@ const data = [{
// 通过 rowSelection 对象表明需要行选择
const rowSelection = {
+ onChange(selectedRowKeys) {
+ console.log('selectedRowKeys changed: ' + selectedRowKeys);
+ },
onSelect: function(record, selected, selectedRows) {
console.log(record, selected, selectedRows);
},
diff --git a/components/table/index.jsx b/components/table/index.jsx
index 5af5afeabb..58e8e1811a 100644
--- a/components/table/index.jsx
+++ b/components/table/index.jsx
@@ -88,6 +88,9 @@ let AntTable = React.createClass({
selectionDirty: false,
selectedRowKeys: [],
});
+ if (this.props.rowSelection && this.props.rowSelection.onChange) {
+ this.props.rowSelection.onChange([]);
+ }
}
},
@@ -164,7 +167,7 @@ let AntTable = React.createClass({
});
}
this.setState({
- selectedRowKeys: selectedRowKeys,
+ selectedRowKeys,
selectionDirty: true
});
if (this.props.rowSelection.onSelect) {
@@ -174,6 +177,9 @@ let AntTable = React.createClass({
});
this.props.rowSelection.onSelect(record, checked, selectedRows);
}
+ if (this.props.rowSelection.onChange) {
+ this.props.rowSelection.onChange(selectedRowKeys);
+ }
},
handleRadioSelect: function (record, rowIndex, e) {
@@ -183,7 +189,7 @@ let AntTable = React.createClass({
let key = this.getRecordKey(record, rowIndex);
selectedRowKeys = [key];
this.setState({
- selectedRowKeys: selectedRowKeys,
+ selectedRowKeys,
radioIndex: key,
selectionDirty: true
});
@@ -194,6 +200,9 @@ let AntTable = React.createClass({
});
this.props.rowSelection.onSelect(record, checked, selectedRows);
}
+ if (this.props.rowSelection.onChange) {
+ this.props.rowSelection.onChange(selectedRowKeys);
+ }
},
handleSelectAllRow(e) {
@@ -228,6 +237,9 @@ let AntTable = React.createClass({
});
this.props.rowSelection.onSelectAll(checked, selectedRows);
}
+ if (this.props.rowSelection.onChange) {
+ this.props.rowSelection.onChange(selectedRowKeys);
+ }
},
handlePageChange(current) {
@@ -244,6 +256,9 @@ let AntTable = React.createClass({
pagination
};
this.setState(newState);
+ if (this.props.rowSelection && this.props.rowSelection.onChange) {
+ this.props.rowSelection.onChange([]);
+ }
this.props.onChange.apply(this, this.prepareParamsArguments(objectAssign({}, this.state, newState)));
},