From 4f3d826685b29f7b38112fcff1b8f9ea9850a85c Mon Sep 17 00:00:00 2001 From: Alex Kvak Date: Wed, 6 Apr 2016 11:46:54 +0300 Subject: [PATCH 1/2] rowRef prop added --- README.md | 6 ++++++ src/Table.jsx | 9 ++++++++- src/TableRow.jsx | 4 +++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d8faa612b..4aba60d83 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,12 @@ var table = React.render( get row's className + + rowRef + Function(record,index):string + + get row's ref key + defaultExpandedRowKeys String[] diff --git a/src/Table.jsx b/src/Table.jsx index 26e89fedc..61cfac685 100644 --- a/src/Table.jsx +++ b/src/Table.jsx @@ -27,6 +27,7 @@ const Table = React.createClass({ showHeader: React.PropTypes.bool, footer: React.PropTypes.func, scroll: React.PropTypes.object, + rowRef: React.PropTypes.func, }, getDefaultProps() { @@ -57,6 +58,9 @@ const Table = React.createClass({ expandIconColumnIndex: 0, showHeader: true, scroll: {}, + rowRef() { + return null; + }, }; }, @@ -185,6 +189,7 @@ const Table = React.createClass({ let rst = []; const keyFn = props.rowKey; const rowClassName = props.rowClassName; + const rowRef = props.rowRef; const expandedRowClassName = props.expandedRowClassName; const needIndentSpaced = props.data.some(record => record[childrenColumnName] && record[childrenColumnName].length > 0); @@ -231,7 +236,9 @@ const Table = React.createClass({ expandIconColumnIndex={expandIconColumnIndex} onRowClick={onRowClick} { ...onHoverProps } - key={key} /> + key={key} + rowRef={rowRef} + /> ); const subVisible = visible && isRowExpanded; diff --git a/src/TableRow.jsx b/src/TableRow.jsx index debc6718f..c86032329 100644 --- a/src/TableRow.jsx +++ b/src/TableRow.jsx @@ -119,7 +119,9 @@ const TableRow = React.createClass({ onMouseEnter={props.onHover.bind(null, true, index)} onMouseLeave={props.onHover.bind(null, false, index)} className={`${prefixCls} ${props.className} ${prefixCls}-level-${indent}`} - style={props.visible ? null : { display: 'none' }}> + style={props.visible ? null : { display: 'none' }} + ref={props.rowRef ? props.rowRef(record, index) : null} + > {cells} ); From db41690ab6ed2b6472022b49cd86d6bc654f7c35 Mon Sep 17 00:00:00 2001 From: Alex Kvak Date: Wed, 6 Apr 2016 11:46:54 +0300 Subject: [PATCH 2/2] rowRef prop added --- README.md | 6 ++++++ src/Table.jsx | 9 ++++++++- src/TableRow.jsx | 3 ++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d8faa612b..4aba60d83 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,12 @@ var table = React.render( get row's className + + rowRef + Function(record,index):string + + get row's ref key + defaultExpandedRowKeys String[] diff --git a/src/Table.jsx b/src/Table.jsx index 26e89fedc..d7c399b3b 100644 --- a/src/Table.jsx +++ b/src/Table.jsx @@ -27,6 +27,7 @@ const Table = React.createClass({ showHeader: React.PropTypes.bool, footer: React.PropTypes.func, scroll: React.PropTypes.object, + rowRef: React.PropTypes.func, }, getDefaultProps() { @@ -57,6 +58,9 @@ const Table = React.createClass({ expandIconColumnIndex: 0, showHeader: true, scroll: {}, + rowRef() { + return null; + }, }; }, @@ -185,6 +189,7 @@ const Table = React.createClass({ let rst = []; const keyFn = props.rowKey; const rowClassName = props.rowClassName; + const rowRef = props.rowRef; const expandedRowClassName = props.expandedRowClassName; const needIndentSpaced = props.data.some(record => record[childrenColumnName] && record[childrenColumnName].length > 0); @@ -231,7 +236,9 @@ const Table = React.createClass({ expandIconColumnIndex={expandIconColumnIndex} onRowClick={onRowClick} { ...onHoverProps } - key={key} /> + key={key} + ref={rowRef(record, i)} + /> ); const subVisible = visible && isRowExpanded; diff --git a/src/TableRow.jsx b/src/TableRow.jsx index debc6718f..fca5cec83 100644 --- a/src/TableRow.jsx +++ b/src/TableRow.jsx @@ -119,7 +119,8 @@ const TableRow = React.createClass({ onMouseEnter={props.onHover.bind(null, true, index)} onMouseLeave={props.onHover.bind(null, false, index)} className={`${prefixCls} ${props.className} ${prefixCls}-level-${indent}`} - style={props.visible ? null : { display: 'none' }}> + style={props.visible ? null : { display: 'none' }} + > {cells} );