react-bootstrap-table-ng-toolkit
v5.19.2
Published
The toolkit for react-bootstrap-table-ng
Downloads
241
Maintainers
Readme
react-bootstrap-table-ng-toolkit
react-bootstrap-table-ng support some additional features in react-bootstrap-table-ng-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
Install
$ npm install react-bootstrap-table-ng-toolkit --saveAdd CSS
// es5
require("react-bootstrap-table-ng-toolkit/dist/react-bootstrap-table-ng-toolkit.min.css");
// es6
import "react-bootstrap-table-ng-toolkit/dist/react-bootstrap-table-ng-toolkit.min.css";Table Search
import ToolkitProvider, { Search } from "react-bootstrap-table-ng-toolkit";
const { SearchBar } = Search;
//...
<ToolkitProvider keyField="id" data={products} columns={columns} search>
{(props) => (
<div>
<h3>Input something at below input field:</h3>
<SearchBar {...props.searchProps} />
<hr />
<BootstrapTable {...props.baseProps} />
</div>
)}
</ToolkitProvider>;You have to enable the search functionality via
searchprop onToolkitProvider.ToolkitProvideris a wrapper of react context, you are supposed to wrap theBootstrapTableandSearchBaras the child ofToolkitProviderYou should render
SearchBarwithsearchPropsas well. The position ofSearchBaris 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:
function onColumnMatch({ searchText, value, column, row }) {
// implement your custom match logic on every cell value
}
<ToolkitProvider
keyField="id"
data={products}
columns={columns}
search={{
onColumnMatch,
}}
>
// ...
</ToolkitProvider>;Notes: You have to return
truewhen 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-table-ng 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={{
afterSearch: (newResult) => console.log(newResult),
}}
>
// ...
</ToolkitProvider>Clear Search Button
We have a built-in clear search function which allow user clear search status via clicking button:
import ToolkitProvider, { Search } from "react-bootstrap-table-ng-toolkit";
const { SearchBar, ClearSearchButton } = Search;
<ToolkitProvider keyField="id" data={products} columns={columns} search>
{(props) => (
<div>
<SearchBar {...props.searchProps} />
<ClearSearchButton {...props.searchProps} />
....
</div>
)}
</ToolkitProvider>;Export CSV
There are two steps to enable the export CSV functionality:
- Give
exportCSVprop astrueonToolkitProvider. - Render
ExportCSVButtonwithcsvProps. The position ofExportCSVButtonis depends on you.
import ToolkitProvider, { CSVExport } from "react-bootstrap-table-ng-toolkit";
const { ExportCSVButton } = CSVExport;
<ToolkitProvider keyField="id" data={products} columns={columns} exportCSV>
{(props) => (
<div>
<ExportCSVButton {...props.csvProps}>Export CSV!!</ExportCSVButton>
<hr />
<BootstrapTable {...props.baseProps} />
</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:
import BootstrapTable from "react-bootstrap-table-ng";
import ToolkitProvider, {
ColumnToggle,
} from "react-bootstrap-table-ng-toolkit";
<ToolkitProvider keyField="id" data={products} columns={columns} columnToggle>
{(props) => (
<div>
<ToggleList {...props.columnToggleProps} />
<hr />
<BootstrapTable {...props.baseProps} />
</div>
)}
</ToolkitProvider>;
columnTogglePropsprops 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.
