DxGrid.FilterBuilderTemplate Property
Specifies a template for the filter builder.
Namespace: DevExpress.Blazor
Assembly: DevExpress.Blazor.v25.2.dll
Declaration
[Parameter]
public RenderFragment<GridFilterBuilderTemplateContext> FilterBuilderTemplate { get; set; }
Property Value
| Type | Description |
|---|---|
| RenderFragment<GridFilterBuilderTemplateContext> | The filter builder template. |
Remarks
The filter builder dialog is a centralized viewer/editor for Grid component’s filter conditions. Users can edit and combine filter criteria applied to any number of columns, all within the same window. To open this dialog, users can click the current filter region in the filter panel. The ShowFilterBuilder() method opens the dialog from code.

Specify a FilterBuilderTemplate to apply the following customizations:
- Display custom filter fields
- Display custom content within the filter builder dialog
- Change settings of the integrated Filter Builder component
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
AndandOr - 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
};
});
}
}

Implements
See Also