Skip to content

Latest commit

 

History

History
56 lines (46 loc) · 2.13 KB

CompoundColumns.md

File metadata and controls

56 lines (46 loc) · 2.13 KB

CompoundColumns

The CompoundColumns extension adds the ability to define a column structure which includes additional spanning header cells above the actual columns in the grid.

require([
    'dojo/_base/declare',
    'dgrid/OnDemandGrid',
    'dgrid/extensions/CompoundColumns'
], function (declare, OnDemandGrid, CompoundColumns) {
    var compoundGrid = new (declare([ OnDemandGrid, CompoundColumns ]))({
        columns: [
            { label: 'Full Name', children: [
                { label: 'Given', children: [
                    { field: 'firstname', label: 'First' },
                    { field: 'middlename', label: 'Middle', sortable: false }
                ] },
                { field: 'lastname', label: 'Last' }
            ] },
            { field: 'age', label: 'Age' }
        ]
    }, 'compoundGrid');
    // ...
});

For an example of the CompoundColumns extension in use, see dgrid/test/extensions/CompoundColumns.html.

Usage

CompoundColumns works by defining any compound header cells first, then defining the more granular cells via a children property of each column definition object. This can be extended to nest any number of levels.

In the above example, the columns array would define a structure which presents 4 columns (first name, middle name, last name, and age), with an additional label cell spanning above first and middle name, and yet another label cell spanning above all 3 name fields combined.

Additionally, the headers on the innermost children can be suppressed by specifying showChildHeaders: false on their immediate parent.

Mixin Order

CompoundColumns contains special considerations for interoperating with a few other dgrid mixins and extensions. As such, the following should be kept in mind when using these components together:

  • CompoundColumns should be mixed in before ColumnSet, because it needs to normalize its column structure before ColumnSet performs its logic.
  • CompoundColumns should be mixed in after ColumnResizer and ColumnHider, because it extends methods defined by these other extensions, to add considerations specific to its own behavior.