react-bootstrap-table2-toolkit
react-bootstrap-table2
support some additional features in react-bootstrap-table2-toolkit
.
In the future, this toolkit will support other feature like row delete, insert etc. Right now we only following features:
- Table Search
- Export CSV
- Column Toggle
Live Demo For Table Search Live Demo For Export CSV Live Demo For Column Toggle
Install
$ npm install react-bootstrap-table2-toolkit --save
Add CSS
// es5 ; // es6;
Table Search
; const SearchBar = Search;//... <ToolkitProvider keyField="id" data= products columns= columns search > <div> <h3>Input something at below input field:</h3> <SearchBar ...propssearchProps /> <hr /> <BootstrapTable ...propsbaseProps /> </div> </ToolkitProvider>
-
You have to enable the search functionality via
search
prop onToolkitProvider
. -
ToolkitProvider
is a wrapper of react context, you are supposed to wrap theBootstrapTable
andSearchBar
as the child ofToolkitProvider
-
You should render
SearchBar
withsearchProps
as well. The position ofSearchBar
is depends on you.
SearchBar
Props
className - [string]
Custom the class on input element.
placeholder - [string]
Custom the placeholder on input element.
style - [object]
Custom the style on input element.
delay = [number]
milionsecond for debounce user input.
srText = [string]
Customize the screen reader text for the search input. (Default: "Search this table")
Search Options
defaultSearch - [string]
Accept a string that will be used for default searching when first time table render.
<ToolkitProvider keyField="id" data= products columns= columns search= defaultSearch: 'search something here' > // ...</ToolkitProvider>
onColumnMatch - [function]
Acccpt a function which will be called when table try to match every cells when search happening. This function accept an object like below example:
{ // implement your custom match logic on every cell value} <ToolkitProvider keyField="id" data= products columns= columns search= onColumnMatch > // ...</ToolkitProvider>
Notes: You have to return
true
when your match logic is positive and vice versa.
searchFormatted - [bool]
If you want to search on the formatted data, you are supposed to enable this props. react-bootstrap-table2
will check if you define the column.formatter
when doing search.
<ToolkitProvider keyField="id" data= products columns= columns search= searchFormatted: true > // ...</ToolkitProvider>
afterSearch - [Function]
After search done, this callback function will be called with newest result.
<ToolkitProvider keyField="id" data= products columns= columns search= console > // ...</ToolkitProvider>
Clear Search Button
We have a built-in clear search function which allow user clear search status via clicking button:
; const SearchBar ClearSearchButton = Search; <ToolkitProvider keyField="id" data= products columns= columns search> <div> <SearchBar ...propssearchProps /> <ClearSearchButton ...propssearchProps /> ... </div> </ToolkitProvider>
Export CSV
There are two steps to enable the export CSV functionality:
- Give
exportCSV
prop astrue
onToolkitProvider
. - Render
ExportCSVButton
withcsvProps
. The position ofExportCSVButton
is depends on you.
; const ExportCSVButton = CSVExport; <ToolkitProvider keyField="id" data= products columns= columns exportCSV> <div> <ExportCSVButton ...propscsvProps >Export CSV!!</ExportCSVButton> <hr /> <BootstrapTable ...propsbaseProps /> </div> </ToolkitProvider>
Export CSV Options
fileName - [String]
Custom the csv file name.
separator - [String]
Custom the csv file separator.
ignoreHeader - [bool]
Default is false
. Give true to avoid to attach the csv header.
ignoreFooter - [bool]
Default is true
. Give false
to attach the table footer if enabled.
noAutoBOM - [bool]
Default is true
.
blobType - [string]
Default is text/plain;charset=utf-8
. Change to update the blob type of the exported file.
exportAll - [bool]
Default is true
. false
will only export current data which display on table.
onlyExportSelection - [bool]
Default is false
. true
will only export the data which is selected.
onlyExportFiltered - [bool]
Default is false
. true
will only export the data which is filtered/searched.
When you configure this prop as true, you must turn off
exportAll
.
Column Toggle
Let's see how to render the column toggle in your react component:
;; <ToolkitProvider keyField="id" data= products columns= columns columnToggle> <div> <ToggleList ...propscolumnToggleProps /> <hr /> <BootstrapTable ...propsbaseProps /> </div> </ToolkitProvider>
columnToggleProps
props have enough information to let you custom the toggle list: [demo](Live Demo For Export CSV)
If you want to have default visibility on specified column, you can just give true
or false
on column.hidden
.