Grid Grouping
Smart.Grid allows you to group rows by column values in order to create a row hierarchy.
You can choose by which column/columns you wish to group the rows by setting the GroupBy
property
of the GridDataSourceSettings()
object.
The grouping settings can be customized using the GridGrouping()
object.
<Grid @ref="grid" DataSourceSettings="dataSourceSettings" DataSource="dataRecords" Grouping="@grouping"> <Columns> <Column DataField="Id" Label="#" DataType="number"></Column> <Column DataField="FirstName" Label="First Name"></Column> <Column DataField="LastName" Label="Last Name"></Column> <Column DataField="ProductName" Label="Product"></Column> <Column DataField="Quantity" Label="Quantity" DataType="number"></Column> <Column DataField="Price" Label="Unit Price" DataType="number"></Column> <Column DataField="Total" Label="Total" DataType="number"></Column> </Columns> </Grid> @code { Grid grid; GridGrouping grouping = new GridGrouping() { Enabled = true, RenderMode = GridGroupingRenderMode.Basic, GroupBar = new GridGroupingGroupBar() { Visible = true } }; GridDataSourceSettings dataSourceSettings = new GridDataSourceSettings() { GroupBy = new string[] { "ProductName", "FirstName" }, DataFields = new List<GridDataSourceSettingsDataField>() { new GridDataSourceSettingsDataField() { Name = "Id", DataType = GridDataSourceSettingsDataFieldDataType.Number }, new GridDataSourceSettingsDataField() { Name = "Total", DataType = GridDataSourceSettingsDataFieldDataType.Number }, new GridDataSourceSettingsDataField() { Name = "ProductName", DataType = GridDataSourceSettingsDataFieldDataType.String }, new GridDataSourceSettingsDataField() { Name = "FirstName", DataType = GridDataSourceSettingsDataFieldDataType.String }, new GridDataSourceSettingsDataField() { Name = "LastName", DataType = GridDataSourceSettingsDataFieldDataType.String }, new GridDataSourceSettingsDataField() { Name = "Quantity", DataType = GridDataSourceSettingsDataFieldDataType.Number }, new GridDataSourceSettingsDataField() { Name = "Price", DataType = GridDataSourceSettingsDataFieldDataType.Number } } }; }
Difference between Grid with grouping enabled and disabled:
Group Bar
The Group Bar allows users to customize the Grid hieararchy by dragging columns onto the Group Bar
<Grid @ref="grid" DataSourceSettings="dataSourceSettings" DataSource="dataRecords" Grouping="@grouping"> ..... </Grid> @code{ .... GridGrouping grouping = new GridGrouping() { Enabled = true, RenderMode = GridGroupingRenderMode.Basic, GroupBar = new GridGroupingGroupBar() { Visible = true } }; }
Grouping with Header
It is also possible to apply grouping rules using the built-in Grid Header
<Grid @ref="grid" DataSourceSettings="dataSourceSettings" DataSource="dataRecords" Grouping="@grouping" Header="header"> ..... </Grid> @code{ .... GridHeader header = new GridHeader() { Visible = true }; }