ColumnSorting

Plugin: ColumnSorting

Description

This plugin sorts the view by columns (but does not sort the data source!). To enable the plugin, set the Options#columnSorting property to the correct value (see the examples below).

Example

Options

columnSorting

Source code

columnSorting.columnSorting : boolean | object

The columnSorting option configures the ColumnSorting plugin.

You can set the columnSorting option to one of the following:

If you set the columnSorting option to an object, you can set the following ColumnSorting plugin options:

Option Possible settings
indicator true: Display the arrow icon in the column header, to indicate a sortable column
false: Don't display the arrow icon in the column header
headerAction true: Enable clicking on the column header to sort the column
false: Disable clicking on the column header to sort the column
sortEmptyCells true: Sort empty cells as well
false: Place empty cells at the end
compareFunctionFactory A custom compare function

If you set the columnSorting option to an object, you can also sort individual columns at Handsontable's initialization. In the columnSorting object, add an object named initialConfig, with the following properties:

Option Possible settings Description
column A number The index of the column that you want to sort at initialization
sortOrder 'asc' | 'desc' The sorting order:
'asc': ascending
'desc': descending

Read more:

Default: undefined
Example

Methods

clearSort

Source code

columnSorting.clearSort()

Clear the sort performed on the table.

destroy

Source code

columnSorting.destroy()

Destroys the plugin instance.

disablePlugin

Source code

columnSorting.disablePlugin()

Disables the plugin functionality for this Handsontable instance.

enablePlugin

Source code

columnSorting.enablePlugin()

Enables the plugin functionality for this Handsontable instance.

getSortConfig

Source code

columnSorting.getSortConfig([column]) ⇒ undefined | object | Array

Get sort configuration for particular column or for all sorted columns. Objects contain column and sortOrder properties.

Note: Please keep in mind that returned objects expose visual column index under the column key. They are handled by the sort function.

Param Type Description
[column] number optional Visual column index.

isEnabled

Source code

columnSorting.isEnabled() ⇒ boolean

Checks if the plugin is enabled in the Handsontable settings. This method is executed in Hooks#beforeInit hook and if it returns true then the ColumnSorting#enablePlugin method is called.

isSorted

Source code

columnSorting.isSorted() ⇒ boolean

Checks if the table is sorted (any column have to be sorted).

setSortConfig

Source code

columnSorting.setSortConfig(sortConfig)

Warn: Useful mainly for providing server side sort implementation (see in the example below). It doesn't sort the data set. It just sets sort configuration for all sorted columns. Note: Please keep in mind that this method doesn't re-render the table.

Example

Param Type Description
sortConfig undefined
object
Array
Single column sort configuration or full sort configuration (for all sorted columns). The configuration object contains column and sortOrder properties. First of them contains visual column index, the second one contains sort order (asc for ascending, desc for descending).

sort

Source code

columnSorting.sort(sortConfig)

Sorts the table by chosen columns and orders.

Emits: Hooks#event:beforeColumnSort, Hooks#event:afterColumnSort
Example

Param Type Description
sortConfig undefined
object
Single column sort configuration. The configuration object contains column and sortOrder properties. First of them contains visual column index, the second one contains sort order (asc for ascending, desc for descending). Note: Please keep in mind that every call of sort function set an entirely new sort order. Previous sort configs aren't preserved.