Skip to main content
All docs
V25.2
  • GridFilterBuilderTemplateContext.Grid Property

    Returns the Grid object.

    Namespace: DevExpress.Blazor

    Assembly: DevExpress.Blazor.v25.2.dll

    NuGet Package: DevExpress.Blazor

    Declaration

    public IGrid Grid { get; }

    Property Value

    Type Description
    IGrid

    The Grid object.

    Remarks

    Use the Grid property to access the Grid and its extensive API in the FilterBuilderTemplate.

    Example

    The following code snippet customizes the filter builder dialog as follows:

    • Displays the applied filter condition above the Filter Builder component
    • Limits available logical operators to And and Or
    • Adds a Country filter field
    @inject NwindDataService NwindDataService
    
    <DxGrid Data="Data"
            FilterMenuButtonDisplayMode="GridFilterMenuButtonDisplayMode.Always"
            FilterPanelDisplayMode="GridFilterPanelDisplayMode.Always">
        <Columns>
            <DxGridDataColumn FieldName="SalesPerson" Caption="Salesperson">
                <EditSettings>
                    <DxComboBoxSettings Data="Salespersons" />
                </EditSettings>
            </DxGridDataColumn>
            <DxGridBandColumn Caption="Order">
                <Columns>
                    <DxGridDataColumn FieldName="CompanyName" />
                    <DxGridDataColumn FieldName="OrderDate" Caption="Date" />
                    <DxGridBandColumn Caption="Product">
                        <Columns>
                            <DxGridDataColumn FieldName="ProductName" Caption="Name">
                                <EditSettings>
                                    <DxComboBoxSettings Data="ProductNames" />
                                </EditSettings>
                            </DxGridDataColumn>
                            <DxGridDataColumn FieldName="UnitPrice" />
                        </Columns>
                    </DxGridBandColumn>
                    <DxGridDataColumn FieldName="Quantity" />
                </Columns>
            </DxGridBandColumn>
        </Columns>
        <FilterBuilderTemplate>
            <b>Currently Applied Filter:</b> @(context.Grid.GetFilterCriteria()?.ToString() ?? "No filter")
            <DxFilterBuilder @bind-FilterCriteria="context.FilterCriteria" 
                GroupOperatorTypes="[FilterBuilderGroupOperatorType.And, FilterBuilderGroupOperatorType.Or]">
                <Fields>
                    @context.RenderDefaultFields()
                    <DxFilterBuilderField FieldName="ShipCountry" Caption="Country"
                        CaptionFullPath="Shipping Info.Country">
                        <EditSettings>
                            <DxComboBoxSettings Data="ShipCountries" />
                        </EditSettings>
                    </DxFilterBuilderField>
                </Fields>
            </DxFilterBuilder>
        </FilterBuilderTemplate>
    </DxGrid>
    
    @code {
        object Data { get; set; }
    
        IEnumerable<string> Salespersons { get; set; }
        IEnumerable<string> ProductNames { get; set; }
        IEnumerable<string> ShipCountries { get; set; }
    
        protected override async Task OnInitializedAsync() {
            var invoices = await NwindDataService.GetInvoicesAsync();
            var customers = await NwindDataService.GetCustomersAsync();
    
            var invoiceList = invoices.ToList();
            Salespersons = invoiceList.Select(i => i.Salesperson)
                                  .Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().OrderBy(s => s).ToList();
            ProductNames = invoiceList.Select(i => i.ProductName)
                                  .Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().OrderBy(s => s).ToList();
            ShipCountries = invoiceList.Select(i => i.ShipCountry)
                                  .Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().OrderBy(s => s).ToList();
    
            Data = invoiceList.OrderBy(i => i.OrderDate).Join(customers, i => i.CustomerId, c => c.CustomerId, 
                (i, c) => { return new {
                    CompanyName = c.CompanyName,
                    SalesPerson = i.Salesperson,
                    UnitPrice = i.UnitPrice,
                    OrderDate = i.OrderDate,
                    ProductName = i.ProductName,
                    Quantity = i.Quantity,
                    ShipCountry = i.ShipCountry,
                    ShipCity = i.ShipCity,
                    ShipName = i.ShipName
                };
            });
        }
    }
    

    DevExpress Blazor Grid - Filter Builder Template

    See Also