You're viewing the legacy site. Visit cxjs.io/docs for the latest documentation. Legacy site. Visit cxjs.io/docs for new docs.

Documentation

Report Edit

Dynamic Grouping in Grids

Grid control supports multiple levels of grouping and aggregation.

Group by:
 
NameContinentBrowserOSVisits
Patience DurganAntarcticaInternet ExplorerMac OS80
Jessie DooleyAfricaSafariiOS9
Faye MorarAsiaInternet ExplorerMac OS96
Brando BoganNorth AmericaChromeUbuntu43
Jayce PadbergAntarcticaOperaiOS17
Marjory LockmanAfricaOperaAndroid66
Jonatan McDermottNorth AmericaInternet ExplorerWindows51
Brennon HartmannNorth AmericaInternet ExploreriOS41
Letitia BoscoAsiaSafariMac OS14
Clarabelle CristAfricaSafariMac OS50
Jamal JaskolskiAustraliaOperaUbuntu79
Carmen SkilesAsiaOperaAndroid75
Stanford LebsackSouth AmericaOperaWindows60
Cordelia AbshireSouth AmericaInternet ExplorerUbuntu38
Evelyn MarvinAfricaFirefoxWindows43
Braxton AbshireSouth AmericaChromeMac OS45
Lina GrahamAustraliaSafariiOS3
Gilda BrekkeAfricaOperaUbuntu17
Brando LarsonAsiaEdgeiOS66
Clifton WeimannAntarcticaInternet ExplorerUbuntu14
Kenyon KuphalAsiaFirefoxMac OS13
Sam HarberAntarcticaSafariAndroid27
Alyce CrooksSouth AmericaInternet ExploreriOS20
Marcellus BartolettiAfricaChromeiOS59
Niko AltenwerthNorth AmericaInternet ExplorerUbuntu51
Randi CarrollAustraliaOperaiOS24
Gillian HuelNorth AmericaOperaiOS56
Crystel GrantSouth AmericaOperaiOS44
Estevan GoodwinAustraliaInternet ExplorerMac OS3
Lilla WillAfricaFirefoxWindows91
Ocie CormierAntarcticaInternet ExploreriOS13
Marietta WalkerEuropeEdgeMac OS87
Nickolas KshlerinEuropeChromeWindows74
Laila ConnellySouth AmericaInternet ExplorerUbuntu35
Angelita GleichnerNorth AmericaSafariUbuntu54
Noel LebsackNorth AmericaFirefoxUbuntu30
Halle KonopelskiEuropeOperaAndroid78
Magdalena KrisAsiaChromeUbuntu9
Colby KingAustraliaInternet ExplorerUbuntu7
Ursula HegmannSouth AmericaEdgeiOS72
Reece YostNorth AmericaOperaMac OS61
Llewellyn LockmanAsiaFirefoxiOS96
Darrin WizaAsiaOperaUbuntu4
Jamaal BoehmSouth AmericaInternet ExplorerMac OS45
Geovanni HillsNorth AmericaChromeMac OS24
Kattie SchoenAsiaSafariAndroid31
Joaquin RauSouth AmericaInternet ExploreriOS42
Hillary McClureEuropeSafariUbuntu74
Luna KoeppAntarcticaFirefoxWindows88
Foster CollinsAfricaInternet ExploreriOS87
Ricardo BraunSouth AmericaOperaiOS19
Triston CronaNorth AmericaOperaMac OS66
Effie SchoenNorth AmericaOperaAndroid13
Jamel MorissetteAsiaInternet ExplorerAndroid14
Leda SchoenAustraliaOperaUbuntu84
Corbin SanfordSouth AmericaSafariMac OS24
Angelina ChristiansenAsiaFirefoxMac OS92
Aubrey KertzmannAfricaFirefoxAndroid43
Tyrique EmmerichEuropeEdgeAndroid53
Mariana GreenholtSouth AmericaOperaUbuntu38
Santos HammesAntarcticaSafariUbuntu31
Thelma WardAfricaFirefoxMac OS48
Orin RolfsonSouth AmericaFirefoxWindows83
Karina KirlinAsiaInternet ExploreriOS83
Jaren WilkinsonSouth AmericaSafariUbuntu70
Amparo EbertAfricaChromeUbuntu18
Mikel LeuschkeAfricaInternet ExplorerUbuntu7
Claudie LakinSouth AmericaInternet ExplorerUbuntu48
Kenneth KoeppAntarcticaEdgeAndroid29
Justine JohnsEuropeInternet ExplorerMac OS96
Irma FunkAfricaFirefoxAndroid92
Jerrod RomagueraAfricaEdgeUbuntu4
Torey ParisianAntarcticaFirefoxMac OS83
Brandon HoweEuropeSafariUbuntu49
Haskell BoscoSouth AmericaEdgeWindows73
Scarlett BodeSouth AmericaInternet ExplorerMac OS81
Elwyn HalvorsonAfricaInternet ExplorerUbuntu53
Isabelle SipesAsiaOperaAndroid27
Rico PriceSouth AmericaOperaUbuntu10
Marco StehrEuropeSafariAndroid77
Lori GrahamAustraliaSafariAndroid98
Jett KovacekAfricaChromeAndroid18
Marie MarvinSouth AmericaInternet ExploreriOS66
Theo ReillyAfricaChromeAndroid79
Bernice OkunevaSouth AmericaFirefoxAndroid70
Josianne WindlerSouth AmericaOperaAndroid68
Velda WindlerAfricaChromeWindows57
Julian JewessSouth AmericaInternet ExplorerMac OS39
Dustin RodriguezAntarcticaSafariAndroid30
Albertha DietrichSouth AmericaSafariAndroid8
Ceasar ColeNorth AmericaSafariMac OS28
Wade WunschSouth AmericaFirefoxiOS20
Chester ReingerSouth AmericaInternet ExploreriOS37
Davonte BeckerSouth AmericaEdgeAndroid40
Orin HarveyEuropeInternet ExplorerAndroid92
Kaylie CruickshankAfricaSafariiOS20
Kassandra BinsAfricaInternet ExplorerAndroid28
Wilson DaughertyNorth AmericaChromeUbuntu89
Skyla SipesAsiaFirefoxMac OS3
Conrad ZboncakAustraliaSafariAndroid75
100 items7 continents6 browsers5 OSes4779
ControllerIndex
<div style="margin-bottom: 10px" ws>
    Group by:
    <LookupField
        records-bind="$page.grouping"
        options-bind="$page.groupableFields"
        multiple={true}
    />
</div>

<Grid
    records-bind='$page.records'
    style={{width: "100%"}}
    groupingParams-bind="$page.grouping"
    onGetGrouping={(groupingParams) => [
        {key: {}, showFooter: true},
        ...(groupingParams || []).map(x => x.id)
    ]}
    columns={[{
        header: 'Name',
        field: 'fullName',
        sortable: true,
        aggregate: 'count',
        footer: {expr: '({$group.$level} > 1 ? {$group.$name:s|TOTAL} + " - " : "") + {$group.fullName} + " " + {$group.fullName:plural;item}'}
    }, {
        header: 'Continent',
        field: 'continent',
        sortable: true,
        aggregate: 'distinct',
        aggregateAlias: 'continents',
        footer: {tpl: '{$group.continents} {$group.continents:plural;continent}'}
    }, {
        header: 'Browser',
        field: 'browser',
        sortable: true,
        aggregate: 'distinct',
        aggregateAlias: 'browsers',
        footer: {tpl: '{$group.browsers} {$group.browsers:plural;browser}'}
    }, {
        header: 'OS',
        field: 'os',
        sortable: true,
        aggregate: 'distinct',
        aggregateAlias: 'oss',
        footer: {tpl: '{$group.oss} {$group.oss:plural;OS}'}
    }, {
        header: 'Visits',
        field: 'visits',
        sortable: true,
        aggregate: "sum",
        align: "right"
    }]}
/>
Copied!Cx Fiddle