react-bootstrap-table2/packages/react-bootstrap-table2-example/examples/rows/row-style.js
Allen 19dc4d3984
fix #129
* implement custom row style

* add story for custom row style

* add tests for rowStyle

* patch docs for rowStyle
2017-10-29 18:17:20 +08:00

94 lines
1.9 KiB
JavaScript

import React from 'react';
import BootstrapTable from 'react-bootstrap-table2';
import Code from 'components/common/code-block';
import { productsGenerator } from 'utils/common';
const products = productsGenerator();
const columns = [{
dataField: 'id',
text: 'Product ID'
}, {
dataField: 'name',
text: 'Product Name'
}, {
dataField: 'price',
text: 'Product Price'
}];
const rowStyle1 = { backgroundColor: '#c8e6c9' };
const sourceCode1 = `\
const columns = [{
dataField: 'id',
text: 'Product ID'
}, {
dataField: 'name',
text: 'Product Name'
}, {
dataField: 'price',
text: 'Product Price'
}];
const rowStyle = { backgroundColor: '#c8e6c9' };
<BootstrapTable keyField='id' data={ products } columns={ columns } rowStyle={ rowStyle } />
`;
const rowStyle2 = (row, rowIndex) => {
const style = {};
if (row.id > 3) {
style.backgroundColor = '#c8e6c9';
} else {
style.backgroundColor = '#00BFFF';
}
if (rowIndex > 2) {
style.fontWeight = 'bold';
style.color = 'white';
}
return style;
};
const sourceCode2 = `\
const columns = [{
dataField: 'id',
text: 'Product ID'
}, {
dataField: 'name',
text: 'Product Name'
}, {
dataField: 'price',
text: 'Product Price'
}];
const rowStyle2 = (row, rowIndex) => {
const style = {};
if (row.id > 3) {
style.backgroundColor = '#c8e6c9';
} else {
style.backgroundColor = '#00BFFF';
}
if (rowIndex > 2) {
style.fontWeight = 'bold';
style.color = 'white';
}
return style;
};
<BootstrapTable keyField='id' data={ products } columns={ columns } rowStyle={ rowStyle2 } />
`;
export default () => (
<div>
<BootstrapTable keyField="id" data={ products } columns={ columns } rowStyle={ rowStyle1 } />
<Code>{ sourceCode1 }</Code>
<BootstrapTable keyField="id" data={ products } columns={ columns } rowStyle={ rowStyle2 } />
<Code>{ sourceCode2 }</Code>
</div>
);