Sorting Feature Guide
Mantine React Table supports almost any sorting scenario you may have. Client-side sorting is enabled by default, but you can opt to implement your own server-side sorting logic, or even replace the default client-side sorting with your own implementation.
Relevant Table Options
# | Prop Name | Type | Default Value | More Info Links | |
|---|---|---|---|---|---|
| 1 | MRT Global Filtering Docs | ||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | TanStack Table Sorting Docs | ||||
| 6 | TanStack Table Sorting Docs | ||||
| 7 | TanStack Table Sorting Docs | ||||
| 8 | TanStack Table Sorting Docs | ||||
| 9 | TanStack Table Sorting Docs | ||||
| 10 | TanStack Table Sorting Docs | ||||
| 11 | TanStack Table Sorting Docs | ||||
Relevant Column Options
Relevant State Options
# | State Option | Type | Default Value | More Info Links | |
|---|---|---|---|---|---|
| 1 | TanStack Table Sorting Docs | ||||
Disable Sorting
Sorting can be disabled globally by setting the
enableSorting table option to false. This will disable sorting for all columns. You can also disable sorting for individual columns by setting the enableSorting column option to false.Initial/Default Sorting
You can sort by a column or multiple columns by default by setting the
sorting state option in either the initialState or state table options.Default Sorting Features
Client-side sorting is enabled by default. When sorting is toggled on for a column, the table will be sorted by an
alphanumeric sorting algorithm by default.Multi-Sorting
Multi-sorting is also enabled by default, which means a user can sort by multiple columns at once. This can be accomplished by clicking on a column header while holding down the
shift key. The table will then be sorted by the previously sorted column, and then by the newly clicked column. Or if you want multi-sorting to be the default click behavior without the need to hold shift, you can set the isMultiSortEvent table option to () => true.You can limit the number of columns that can be sorted at once by setting the
maxMultiSortColCount table option, or you can disable multi-sorting entirely by setting the enableMultiSort table option to false.Sorting Removal
By default, users can remove a sort on a column by clicking through the sort direction options or selecting "Clear Sort" from the column actions menu. You can disable this feature by setting the
enableSortingRemoval table option to false.Sort Direction
By default, columns with
string datatypes will sort alphabetically in ascending order, but columns with number datatypes will sort numerically in descending order. You can change the default sort direction per column by specifying the sortDescFirst column option to either true or false. You can also change the default sort direction globally by setting the sortDescFirst table option to either true or false.First Name | Last Name | City 2 | State 1 | Salary |
|---|---|---|---|---|
| Violet | Doe | San Francisco | California | 100000 |
| Mason | Zhang | Sacramento | California | 100000 |
| Lebron | James | Indianapolis | Indiana | 40000 |
| Joseph | Williams | Valentine | Nebraska | 100000 |
| Allison | Brown | Omaha | Nebraska | 10000 |
| Harry | Smith | Hickman | Nebraska | 20000 |
| Sally | Williamson | Alliance | Nebraska | 30000 |
| Noah | Brown | Toledo | Ohio | 50000 |
| Michael | McGinnis | Harrisonburg | Virginia | 150000 |
1-9 of 9
Sorting Functions
By default, Mantine React Table will use an
alphanumeric sorting function for all columns.There are 6 built-in sorting functions that you can choose from:
alphanumeric, alphanumericCaseSensitive, text, textCaseSensitive, datetime, and basic. You can learn more about these built-in sorting function in the TanStack Table Sorting API docs.Add Custom Sorting Functions
If none of these sorting functions meet your needs, you can add your own custom sorting functions by specifying more sorting functions in the
sortingFns table option.Change Sorting Function Per Column
You can now choose a sorting function for each column by either passing a string value of the built-in sorting function names to the
sortingFn column option, or by passing a custom sorting function to the sortingFn column option.Manual Server-Side Sorting
If you are working with large data sets, you may want to let your back-end apis handle all of the sorting and pagination processing instead of doing it client-side. You can do this by setting the
manualSorting table option to true. This will disable the default client-side sorting and pagination features, and will allow you to implement your own sorting and pagination logic.WhenmanualSortingis set totrue, Mantine React Table assumes that yourdatais already sorted by the time you are passing it to the table.
If you need to sort your data in a back-end api, then you will also probably need access to the internal
sorting state from the table. You can do this by managing the sorting state yourself, and then passing it to the table via the state table option. You can also pass a callback function to the onSortingChange table option, which will be called whenever the sorting state changes internally in the tableRemote Sorting Example
Here is the full Remote Data example showing how to implement server-side sorting, filtering, and pagination with Mantine React Table.
View Extra Storybook Examples