AllenFang / react-bootstrap-table

A Bootstrap table built with React.js
https://allenfang.github.io/react-bootstrap-table/
MIT License
2.23k stars 782 forks source link

Export csv with selected rows in react-bootstrap-table #1980

Open santhoshaSiddagangappa opened 6 years ago

santhoshaSiddagangappa commented 6 years ago

How can i export selected rows as csv file in react-bootstrap-table ? i'm using ^4.0.1 version

this is my code snippet.

const selectedForms = [];

function onRowSelect(row, isSelected) { if (isSelected) { selectedForms.push(row.id); } else { selectedForms.splice((selectedForms.indexOf(row.id)), 1); } console.log(selectedForms.toString()); }

const selectRowProp = { mode: 'checkbox', onSelect: onRowSelect, };

<BootstrapTable data={this.props.forms} pagination striped hover condensed exportCSV csvFileName="XXX.csv" options={{ mode: 'checkbox', onRowClick: (row) => { this.props.history.push(/form/${row.id}); }, onExportToCSV: () => { return this.props.forms.map(form => (selectedForms.indexOf(form.id) > -1)); }, }} selectRow={selectRowProp}

<TableHeaderColumn dataField="id" isKey dataSort filter={{ type: 'TextFilter', delay: 0 }}>Subscriber form ID <TableHeaderColumn dataField="Column1" dataSort filter={{ type: 'TextFilter', delay: 0 }}>Column1 <TableHeaderColumn dataField="Column2" dataSort filter={{ type: 'TextFilter', delay: 0 }}>Column2 <TableHeaderColumn dataField="Column3" dataSort filter={{ type: 'TextFilter', delay: 0 }}>Column3 <TableHeaderColumn dataField="Column4" dataSort filter={{ type: 'TextFilter', delay: 0 }}>Column4

This is the erro message i'm getting : Uncaught TypeError: Cannot read property 'length' of undefined at o (csv_export_util.js:24) at i (csv_export_util.js:80) at t.value (BootstrapTable.js:1392) at Object.n.handleExportCSV [as onExportCSV] (BootstrapTable.js:160) at t.value (ToolBar.js:353) at o.handleExportCSV (ToolBar.js:139) at Object.h (react-dom.production.min.js:36) at Object.invokeGuardedCallback (react-dom.production.min.js:35) at Object.invokeGuardedCallbackAndCatchFirstError (react-dom.production.min.js:35) at b (react-dom.production.min.js:36)