Skip to main content
A newer version of this page is available. .

DxGridSummaryItem.SummaryType Property

Specifies the summary function type.

Namespace: DevExpress.Blazor

Assembly: DevExpress.Blazor.v21.1.dll

NuGet Package: DevExpress.Blazor

Declaration

[Parameter]
public GridSummaryItemType SummaryType { get; set; }

Property Value

Type Description
GridSummaryItemType

A GridSummaryItemType value.

Available values:

Name Description
Sum

Calculates the sum of all values in a column.

Min

Calculates the minimum value of all values in a column.

Max

Calculates the maximum value of all values in a column.

Count

Calculates the number of values in a column.

Avg

Calculates the average of all values in a column.

Custom

Uses a custom algorithm to calculate a summary value.

None

Does not calculates a summary value.

Remarks

Use the summary item’s SummaryType property to specify an aggregate function to calculate the total and group summary values.

The following functions are available:

  • Sum, Min, Max, Avg, and Count (for predefined summary items)

    The Avg, Min, Max, and Sum functions require that you set the FieldName property to a data field whose values take part in calculations. The Min and Max functions require a numeric or date-time data field. The Avg and Sum functions work with numeric fields only.

    If you select the Count function, do not change the FieldName property and use the FooterColumnName property to specify which column displays the summary value.

    Run Demo: Grid - Total Summary Run Demo: Grid - Group Summary

    <DxGrid Data="GridDataSource"
            UnboundColumnData="Grid_CustomUnboundColumnData"
            ShowGroupPanel="true">
        <Columns>
        @* ... *@
            <DxGridDataColumn FieldName="UnitPrice" />
            <DxGridDataColumn FieldName="Quantity" />
            <DxGridDataColumn FieldName="Discount" DisplayFormat="p0" />
            <DxGridDataColumn FieldName="TotalPrice"
                          DisplayFormat="c"
                          UnboundType="GridUnboundColumnType.Decimal" />
        </Columns>
        <GroupSummary>
            <DxGridSummaryItem SummaryType="GridSummaryItemType.Max"
                               ValueDisplayFormat="c"
                               FieldName="UnitPrice" />
        </GroupSummary>
        <TotalSummary>
            <DxGridSummaryItem SummaryType="GridSummaryItemType.Sum" FieldName="TotalPrice" />
        </TotalSummary>
    </DxGrid>
    
  • Custom (for custom summary items)

    Run Demo: Grid - Custom Summary

    <DxGrid Data="GridDataSource"
            UnboundColumnData="Grid_CustomUnboundColumnData"
            CustomizeSummaryDisplayText="Grid_CustomizeSummaryDisplayText"
            CustomSummary="Grid_CustomSummary">
        <Columns>
            <DxGridDataColumn FieldName="ProductId" DisplayFormat="d" />
            <DxGridDataColumn FieldName="UnitPrice" />
            <DxGridDataColumn FieldName="Quantity" />
            <DxGridDataColumn FieldName="Discount" DisplayFormat="p0" />
            <DxGridDataColumn FieldName="TotalPrice"
                          DisplayFormat="c"
                          UnboundType="GridUnboundColumnType.Decimal" />
        </Columns>
        <TotalSummary>
            <DxGridSummaryItem SummaryType="GridSummaryItemType.Sum" FieldName="TotalPrice" />
            <DxGridSummaryItem SummaryType="GridSummaryItemType.Custom" Name="Custom" FieldName="ProductId" />
        </TotalSummary>
    </DxGrid>
    @* ... *@
    @code {
        object GridDataSource { get; set; }
        int totalCount;
    
        protected override void OnInitialized() {
            GridDataSource = Northwind.OrderDetails
                .Include(i => i.Order)
                .Include(i => i.Product)
                .ToList();
        }
    
        void Grid_CustomSummary(GridCustomSummaryEventArgs e) {
            if (e.SummaryStage == GridCustomSummaryStage.Start)
                totalCount = 0;
            else if (e.SummaryStage == GridCustomSummaryStage.Calculate) {
                if (Convert.ToInt16(e.GetValue("UnitPrice")) < 20)
                    totalCount++;
            }
            else if (e.SummaryStage == GridCustomSummaryStage.Finalize)
                e.TotalValue = totalCount;
        }
    
        void Grid_CustomizeSummaryDisplayText(GridCustomizeSummaryDisplayTextEventArgs e) {
            if (e.Item.Name == "Custom")
                e.DisplayText = string.Format("Count (Unit Price < 20): {0}", e.Value);
        }
    
        void Grid_CustomUnboundColumnData(GridUnboundColumnDataEventArgs e) {
            if (e.FieldName == "TotalPrice") {
                var UnitPrice = Convert.ToDecimal(e.GetRowValue("UnitPrice"));
                var Quantity = Convert.ToDecimal(e.GetRowValue("Quantity"));
                var Discount = Convert.ToDecimal(e.GetRowValue("Discount"));
                e.Value = Quantity * UnitPrice * (1 - Discount);
            }
        }
        @* ... *@
    }
    

    DevExpress Blazor Grid - Custom Summary

Implements

See Also