Back to Devexpress

DxTreeList.FilterBuilderTemplate Property

blazor-devexpress-dot-blazor-dot-dxtreelist-ac629482.md

latest9.1 KB
Original Source

DxTreeList.FilterBuilderTemplate Property

Specifies the template for the filter builder.

Namespace : DevExpress.Blazor

Assembly : DevExpress.Blazor.v25.2.dll

NuGet Package : DevExpress.Blazor

Declaration

csharp
[Parameter]
public RenderFragment<TreeListFilterBuilderTemplateContext> FilterBuilderTemplate { get; set; }

Property Value

TypeDescription
RenderFragment<TreeListFilterBuilderTemplateContext>

The filter builder template.

|

Remarks

The filter builder dialog is a centralized viewer/editor for TreeList 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.

Read Tutorial: Filter Panel and Filter Builder Run Demo: Filter Builder Customization

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:

razor
@inject EmployeeTaskService EmployeeTaskService

<DxTreeList @ref="TreeList" Data="TreeListData" KeyFieldName="Id" ParentKeyFieldName="ParentId" 
            FilterPanelDisplayMode="TreeListFilterPanelDisplayMode.Always">
    <Columns>
        <DxTreeListDataColumn FieldName="Name" Caption="Task" />
        <DxTreeListDataColumn FieldName="EmployeeName" />
        <DxTreeListDataColumn FieldName="StartDate" />
        <DxTreeListDataColumn FieldName="DueDate" />
        <DxTreeListDataColumn FieldName="Priority">
            <EditSettings>
                <DxComboBoxSettings Data="Priorities" ValueFieldName="Value" TextFieldName="Text" />
            </EditSettings>
        </DxTreeListDataColumn>
    </Columns>
    <FilterBuilderTemplate>
        <b>Currently Applied Filter:</b> @(context.TreeList.GetFilterCriteria()?.ToString() ?? "No filter")
        <DxFilterBuilder @bind-FilterCriteria="context.FilterCriteria" 
            GroupOperatorTypes="[FilterBuilderGroupOperatorType.And, FilterBuilderGroupOperatorType.Or]">
            <Fields>
                @context.RenderDefaultFields()
                <DxFilterBuilderField FieldName="Status" Caption="Progress" Type="@typeof(int)">
                    <EditSettings>
                        <DxSpinEditSettings MinValue="0" MaxValue="100" />
                    </EditSettings>
                </DxFilterBuilderField>
            </Fields>
        </DxFilterBuilder>
    </FilterBuilderTemplate>
</DxTreeList>

@code {
    ITreeList TreeList { get; set; }
    List<EmployeeTask> TreeListData { get; set; }

    record Priority(int Value, string Text);
    static readonly IReadOnlyList<Priority> Priorities = new Priority[] {
        new Priority(-1, "Low"),
        new Priority(0, "Medium"),
        new Priority(1, "High"),
    };

    protected override void OnInitialized() {
        TreeListData = EmployeeTaskService.GenerateData();
    }
}
csharp
public class EmployeeTask {
    public int Id { get; set; }
    public int ParentId { get; set; }
    public string Name { get; set; }
    public string EmployeeName { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime DueDate { get; set; }
    public int Priority { get; set; }
    public int Status { get; set; }
    public EmployeeTask() { }
    public EmployeeTask(
        int id,
        int parentId,
        string name,
        string employeeName,
        DateTime startDate,
        DateTime dueDate,
        int priority,
        int status
        ) {
        Id = id;
        ParentId = parentId;
        Name = name;
        EmployeeName = employeeName;
        StartDate = startDate;
        DueDate = dueDate;
        Status = status;
        Priority = priority;
    }
}
csharp
public List<EmployeeTask> GenerateData() {
    return new List<EmployeeTask>() {
        new EmployeeTask(1, 0, "Simplify & Clarify Product Messaging", "John Heart", new DateTime(2018, 4, 3), new DateTime(2018, 4, 14), -1, 14),
        new EmployeeTask(2, 1, "Prepare Financial Reports", "Samantha Bright", new DateTime(2018, 4, 3), new DateTime(2018, 4, 7), 0, 17),
        new EmployeeTask(3, 1, "Prepare Marketing Plan", "Arthur Miller", new DateTime(2018, 4, 7), new DateTime(2018, 4, 14), 1, 11),
        new EmployeeTask(4, 0, "Create Action Plan to Improve Customer Engagement", "Robert Reagan", new DateTime(2017, 8, 8), new DateTime(2018, 4, 8), 0, 23),
        new EmployeeTask(5, 4, "Update Personnel Files", "Greta Sims", new DateTime(2017, 8, 8), new DateTime(2017, 10, 18), 0, 100),
        new EmployeeTask(6, 4, "Review Health Insurance Options", "Brett Wade", new DateTime(2017, 9, 27), new DateTime(2017, 11, 10), 1, 37),
        new EmployeeTask(7, 4, "Choose Between PPO and HMO Health Plan", "Sandra Johnson", new DateTime(2017, 12, 13), new DateTime(2018, 3, 23), -1, 17),
        new EmployeeTask(8, 4, "Update Google Adwords Strategy", "Ed Holmes", new DateTime(2017, 8, 23), new DateTime(2017, 12, 23), -1, 45),
        new EmployeeTask(9, 4, "Create New Brochure Design", "Barb Banks", new DateTime(2018, 1, 3), new DateTime(2018, 3, 14), 1, 17),
        new EmployeeTask(10, 4, "Obtain Price Quote for New Brochure", "Kevin Carter", new DateTime(2018, 2, 1), new DateTime(2018, 3, 15), 1, 18),
        new EmployeeTask(11, 4, "Brochure Design Review", "Cindy Stanwick", new DateTime(2017, 8, 22), new DateTime(2017, 10, 28), 0, 4),
        new EmployeeTask(12, 4, "Review Website Redesign Strategy", "Sammy Hill", new DateTime(2017, 9, 16), new DateTime(2018, 3, 6), -1, 73),
        new EmployeeTask(13, 4, "Roll Out New Website", "Davey Jones", new DateTime(2017, 11, 7), new DateTime(2018, 2, 6), -1, 9),
        new EmployeeTask(14, 4, "Update Sales/Marketing Strategy", "Victor Norris", new DateTime(2017, 12, 13), new DateTime(2018, 4, 2), 0, 5),
        new EmployeeTask(15, 4, "Update Sales/Revenue Report", "Mary Stern", new DateTime(2017, 12, 25), new DateTime(2018, 4, 2), 0, 4),
        new EmployeeTask(16, 4, "Direct vs Online Sales Comparison Report", "Robin Cosworth", new DateTime(2018, 1, 2), new DateTime(2018, 3, 20), -1,14),
        new EmployeeTask(17, 4, "Review Sales Report and Approve Modifications", "Kelly Rodriguez", new DateTime(2017, 9, 4), new DateTime(2017, 10, 30), 1, 8),
        new EmployeeTask(18, 4, "Update R&D Strategy", "James Anderson", new DateTime(2017, 11, 13), new DateTime(2017, 12, 4), 0, 12),
        new EmployeeTask(19, 4, "Discuss Updated R&D Strategy", "Antony Remmen", new DateTime(2017, 10, 29), new DateTime(2017, 12, 31), 0, 14),
        new EmployeeTask(20, 4, "Update QA Strategy", "Olivia Peyton", new DateTime(2017, 10, 31), new DateTime(2017, 11, 2), 1, 18),
        new EmployeeTask(21, 4, "Schedule Training Events", "Taylor Riley", new DateTime(2017, 11, 19), new DateTime(2018, 4, 7), -1, 21),
        new EmployeeTask(22, 4, "Approve Hiring of John Jeffers", "Amelia Harper", new DateTime(2018, 1, 7), new DateTime(2018, 4, 8), -1, 10),
        new EmployeeTask(23, 0, "Increase Average Subscription Price", "Wally Hobbs", new DateTime(2017, 8, 9), new DateTime(2017, 9, 13), 0, 96),
        new EmployeeTask(24, 23, "Update Non-Compete Agreements", "Brad Jameson", new DateTime(2017, 8, 9), new DateTime(2017, 9, 3), 1, 96),
        new EmployeeTask(25, 23, "Update Employee Records with New NDA", "Karen Goodson", new DateTime(2017, 8, 23), new DateTime(2018, 9, 10), 1, 100)
    };
}
csharp
// ...
builder.Services.AddSingleton<EmployeeTaskService>();

Implements

FilterBuilderTemplate

See Also

DxTreeList Class

DxTreeList Members

DevExpress.Blazor Namespace