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
Marcos BuckridgeAustraliaSafariAndroid69
Chyna SchowalterAfricaSafariWindows9
Fredy MarquardtNorth AmericaSafariUbuntu45
Justen LeschAsiaEdgeUbuntu96
Susana GleichnerAustraliaSafariUbuntu52
Rosanna BernhardAsiaSafariUbuntu18
Raleigh KemmerNorth AmericaOperaiOS66
Maynard HandAsiaFirefoxUbuntu64
Mariam TowneSouth AmericaEdgeMac OS12
Elouise ConnellyAfricaInternet ExplorerAndroid61
Margie MayertSouth AmericaSafariWindows28
Monserrate FriesenAntarcticaInternet ExplorerUbuntu34
Hillard SwaniawskiEuropeChromeUbuntu18
Alyce FunkNorth AmericaFirefoxAndroid82
Davon MurrayAustraliaOperaMac OS38
Chaim FayNorth AmericaSafariMac OS98
Marilie ParisianAfricaSafariUbuntu47
Christiana SchambergerAfricaOperaAndroid16
Alexys SchroederAsiaInternet ExplorerUbuntu65
Carlo MannAfricaFirefoxAndroid33
Eugenia WolffAfricaSafariMac OS11
Chad OberbrunnerNorth AmericaEdgeiOS26
Etha RogahnNorth AmericaSafariMac OS97
Tatyana BraunNorth AmericaFirefoxAndroid25
Jayson HickleEuropeOperaUbuntu64
Rubye BaumbachEuropeSafariWindows66
Durward HomenickAustraliaOperaMac OS73
Haven KrajcikSouth AmericaOperaWindows6
Opal SchinnerAfricaFirefoxAndroid26
Dorothy PagacAustraliaEdgeUbuntu67
Susanna AndersonAsiaFirefoxiOS2
Eudora HeathcoteEuropeSafariWindows71
Tracy BodeSouth AmericaFirefoxWindows97
Hester FaheyAsiaInternet ExploreriOS90
Chloe BrakusAfricaFirefoxUbuntu62
Gussie BrekkeAustraliaEdgeAndroid7
Beaulah WatersEuropeSafariUbuntu66
Toy CarterSouth AmericaEdgeWindows50
Kristian VonAntarcticaOperaWindows5
Name WilkinsonAntarcticaInternet ExplorerMac OS59
Leo LebsackSouth AmericaOperaWindows7
Norval BoehmAustraliaFirefoxAndroid65
Ursula BashirianSouth AmericaFirefoxUbuntu61
Billy RodriguezNorth AmericaInternet ExplorerUbuntu45
Celestine RoobAsiaFirefoxUbuntu68
Andy BoganSouth AmericaOperaUbuntu76
Tyrell BrekkeSouth AmericaEdgeMac OS34
Vida RobelSouth AmericaFirefoxAndroid34
Tod DickiAfricaOperaAndroid68
Jasmin WestSouth AmericaChromeMac OS93
Braden ReichertNorth AmericaFirefoxiOS25
Reese RodriguezEuropeChromeUbuntu96
Fabiola WizaAustraliaChromeUbuntu91
Natalia LangworthAsiaSafariAndroid69
Yoshiko ZiemannAustraliaFirefoxMac OS27
Alvena McDermottAntarcticaChromeMac OS88
Chris MorissetteAntarcticaOperaiOS40
Kristoffer HahnNorth AmericaOperaUbuntu97
Carlo HarveyAsiaFirefoxAndroid66
Hailee SchambergerNorth AmericaEdgeAndroid72
Ambrose MorarNorth AmericaSafariAndroid10
Triston CroninAfricaFirefoxAndroid74
Watson OkunevaAfricaInternet ExplorerUbuntu26
Xavier CummingsAfricaSafariMac OS56
Mustafa MarquardtSouth AmericaSafariUbuntu89
Wendell EbertNorth AmericaChromeUbuntu83
Caroline StokesSouth AmericaEdgeAndroid79
Destin HettingerAntarcticaOperaWindows31
Bailey GerlachEuropeInternet ExplorerMac OS90
Gabriella WuckertSouth AmericaFirefoxWindows71
Antonina DouglasAntarcticaOperaWindows31
Ashtyn LoweAntarcticaOperaAndroid30
Therese LehnerAfricaFirefoxMac OS41
Coty HammesNorth AmericaEdgeMac OS35
Lee OsinskiAfricaInternet ExplorerAndroid4
Dominic ZboncakAustraliaInternet ExplorerAndroid9
Jonas HayesAsiaInternet ExplorerWindows90
Danika FriesenAustraliaInternet ExplorerMac OS63
Tierra StreichAfricaOperaMac OS22
Donavon ErdmanAntarcticaOperaWindows35
Giuseppe MitchellAntarcticaOperaiOS52
Dedric HandSouth AmericaOperaAndroid8
Laron BartonAntarcticaFirefoxAndroid71
Laurie HandEuropeChromeMac OS68
Israel ErnserNorth AmericaFirefoxUbuntu35
Elyssa TurcotteSouth AmericaChromeMac OS53
Destin KesslerAsiaInternet ExplorerAndroid78
Jed FisherAsiaEdgeUbuntu89
Alvina WalkerAustraliaInternet ExplorerUbuntu43
Sophia KohlerAustraliaFirefoxUbuntu21
Gino RippinSouth AmericaEdgeUbuntu16
Dulce SwaniawskiAfricaSafariMac OS27
Johnpaul AdamsAfricaOperaUbuntu38
Addison GerlachSouth AmericaInternet ExplorerMac OS98
Grant PowlowskiAustraliaFirefoxWindows99
Brown ZulaufAsiaFirefoxAndroid70
Roman KozeyNorth AmericaOperaAndroid91
Violet EmmerichAfricaInternet ExplorerAndroid56
Jeffery GaylordAsiaFirefoxUbuntu73
Adrian GulgowskiAfricaFirefoxUbuntu86
100 items7 continents6 browsers5 OSes5284
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