• Docs
  • API
  • Help
  • Blog
  • GitHub

›Basic Usage

Getting Started

  • About
  • Getting Started
  • Bootstrap 4
  • Migration

Basic Usage

  • Work on Row
  • Work on Column
  • Table Sort
  • Row Selection
  • Column Filter
  • Cell Edit
  • Pagination
  • Expandable Row

Remote Table

  • Work on Remote
  • Overlay

Table Toolkits

  • Getting Started
  • Table Search
  • Export to CSV
  • Column Toggle

Exposed API

  • Introduction

Table Sort

react-bootstrap-table2 allow you to configure columns to be sortable. Currently, we don't support the multi-column sort, but it will be implemented in the future.

Live Demo For Table Sort


Enable Sort on Column

Firstly, you need to know what column you allow user to sort and give the sort as true in the column definition.

const columns = [{
  dataField: 'id',
  text: 'Product ID',
  sort: true
}, {
  dataField: 'name',
  text: 'Product Name',
  sort: true
}, {
  dataField: 'price',
  text: 'Product Price'
}];

<BootstrapTable keyField='id' data={ products } columns={ columns } />

After table rendered, you can see the Product ID and Product Name will have a caret icon beside the column name: sort caret

Control Sorting

Default Sort

react-bootstrap-table2 will only apply the default sort at first time rendering, you can achieve the default sorting on table easily via defaultSorted.

Sort Event Listener

Defined onSort on target column:

{
  dataField: 'id',
  text: 'Product ID',
  sort: true,
  onSort: (field, order) => {
    // ...
  }
}

Manage Sorting Externally

You can configure sort props and give dataField and order on BootstrapTable component to set the sorting state: Please refer this docs.

Usually you will need it when you want to control the sorting state externally, like clicking on a button outside the table to force to sort a specified column.

Custom the Sorting Algorithm

It's simple!! configure sortFunc on column definition.

{
  dataField: 'id',
  text: 'Product ID',
  sort: true
  // Perform a reverse sorting here
  sortFunc: (a, b, order, dataField, rowA, rowB) => {
    if (order === 'asc') {
      return b - a;
    }
    return a - b; // desc
  }
}

Custom the Sorting Style

There're two way you can change or prettify the header when sorting: headerSortingClasses and headerSortingStyle

Custom the Sort Caret

See column.sortCaret.

← Work on ColumnRow Selection →
Docs
Getting StartedAPI References
Community
Stack OverflowProject ChatTwitter
More
BlogGitHubStar
Copyright © 2020 react-bootstrap-table2.