{hero}

columns.orderData

Since: DataTables 1.10

Define multiple column ordering as the default order for a column.

Description

Allows a column's sorting to take either the data from a different (often hidden) column as the data to sort, or data from multiple columns.

A common example of this is a table which contains first and last name columns next to each other, it is intuitive that they would be linked together to multi-column sort. Another example, with a single column, is the case where the data shown to the end user is not directly sortable itself (a column with images in it), but there is some meta data than can be sorted (e.g. file name) - note that orthogonal data is an alternative method that can be used for this.

Another common use case for this parameter is when you want consistent sorting of data over multiple columns, where data in the first column might be of equal value. With this parameter used appropriately, the sorting would then check the value of the second column listed and apply the sorting as needed, to ensure the sorting is as expected, regardless of a previous sort state.

Types

integer

Description:

A single column index to order upon

array

Description:

Multiple column indexes to define multi-column sorting

Default

Takes the index value of the column automatically

Examples

Using orderData to define multi-column sorting with columnDefs:

new DataTable('#myTable', {
	columnDefs: [
		{ orderData: [0, 1], targets: 0 },
		{ orderData: 0, targets: 1 },
		{ orderData: [2, 3, 4], targets: 2 }
	]
});

Using orderData to define multi-column sorting with columns:

new DataTable('#myTable', {
	columns: [
		{ orderData: [0, 1] },
		{ orderData: 0 },
		{ orderData: [2, 3, 4] },
		null,
		null
	]
});

Related

The following options are directly related and may also be useful in your application development.