From db232914a9fa908f8788f5d1515a4539fa7e014d Mon Sep 17 00:00:00 2001 From: OlgunR Date: Tue, 10 Feb 2026 13:32:21 +0100 Subject: [PATCH] Switch grids to built-in filter menu, remove custom filters Removed custom filter row templates and operator logic for date and number columns in CatalogsGrid.razor and MassDataGrid.razor. Grids now use DevExpress's built-in filter menu (FilterMenuButtonDisplayMode.Always), simplifying code and UI. All related filter fields and methods were deleted. --- .../Components/CatalogsGrid.razor | 103 +--------- .../Components/MassDataGrid.razor | 171 +---------------- .../Components/CatalogsGrid.razor | 103 +--------- .../Components/MassDataGrid.razor | 178 +----------------- 4 files changed, 4 insertions(+), 551 deletions(-) diff --git a/DbFirst.BlazorWasm/Components/CatalogsGrid.razor b/DbFirst.BlazorWasm/Components/CatalogsGrid.razor index dc01844..b2ae866 100644 --- a/DbFirst.BlazorWasm/Components/CatalogsGrid.razor +++ b/DbFirst.BlazorWasm/Components/CatalogsGrid.razor @@ -157,7 +157,7 @@ else ShowGroupPanel="true" ShowGroupedColumns="true" AllowGroup="true" - ShowFilterRow="true" + FilterMenuButtonDisplayMode="GridFilterMenuButtonDisplayMode.Always" AllowColumnResize="true" ColumnResizeMode="GridColumnResizeMode.ColumnsContainer" AllowColumnReorder="true" @@ -213,10 +213,6 @@ else private ValidationMessageStore? validationMessageStore; private IGrid? gridRef; private string popupHeaderText = "Edit"; - private DateTime? addedWhenFilterValue; - private string addedWhenFilterOperator = "="; - private DateTime? changedWhenFilterValue; - private string changedWhenFilterOperator = "="; private const string LayoutType = "GRID_BANDS"; private const string LayoutKey = "CatalogsGrid"; private const string LayoutUserStorageKey = "layoutUser"; @@ -243,15 +239,6 @@ else new() { Value = 1, Text = "PRTBMY_CATALOG_SAVE" } }; - private readonly List filterOperators = new() - { - new() { Value = "=", Text = "=" }, - new() { Value = "<", Text = "<" }, - new() { Value = ">", Text = ">" }, - new() { Value = "<=", Text = "<=" }, - new() { Value = ">=", Text = ">=" } - }; - private bool CanSaveBandLayout => !string.IsNullOrWhiteSpace(layoutUser); private bool gridLayoutApplied; @@ -757,97 +744,9 @@ else builder.AddAttribute(seq++, "ReadOnly", true); } - if (string.Equals(column.FieldName, nameof(CatalogReadDto.AddedWhen), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildAddedWhenFilterTemplate()); - } - else if (string.Equals(column.FieldName, nameof(CatalogReadDto.ChangedWhen), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildChangedWhenFilterTemplate()); - } - builder.CloseComponent(); } - private RenderFragment BuildAddedWhenFilterTemplate() - { - return BuildDateFilterTemplate( - () => addedWhenFilterValue, - value => addedWhenFilterValue = value, - () => addedWhenFilterOperator, - value => addedWhenFilterOperator = value); - } - - private RenderFragment BuildChangedWhenFilterTemplate() - { - return BuildDateFilterTemplate( - () => changedWhenFilterValue, - value => changedWhenFilterValue = value, - () => changedWhenFilterOperator, - value => changedWhenFilterOperator = value); - } - - private RenderFragment BuildDateFilterTemplate( - Func getValue, - Action setValue, - Func getOperator, - Action setOperator) - { - return context => builder => - { - var seq = 0; - builder.OpenElement(seq++, "div"); - builder.AddAttribute(seq++, "class", "filter-row-cell"); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Data", filterOperators); - builder.AddAttribute(seq++, "TextFieldName", "Text"); - builder.AddAttribute(seq++, "ValueFieldName", "Value"); - builder.AddAttribute(seq++, "Value", getOperator()); - builder.AddAttribute(seq++, "ValueChanged", EventCallback.Factory.Create(this, value => - { - setOperator(value); - UpdateFilterCriteria(context, value, getValue()); - })); - builder.AddAttribute(seq++, "CssClass", "filter-operator"); - builder.CloseComponent(); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Date", getValue()); - builder.AddAttribute(seq++, "DateChanged", EventCallback.Factory.Create(this, value => - { - setValue(value); - UpdateFilterCriteria(context, getOperator(), value); - })); - builder.AddAttribute(seq++, "ClearButtonDisplayMode", DataEditorClearButtonDisplayMode.Auto); - builder.AddAttribute(seq++, "CssClass", "filter-value"); - builder.CloseComponent(); - - builder.CloseElement(); - }; - } - - private void UpdateFilterCriteria(GridDataColumnFilterRowCellTemplateContext context, string op, DateTime? value) - { - if (!value.HasValue) - { - context.FilterCriteria = null; - return; - } - - var prop = new OperandProperty(context.DataColumn.FieldName); - var date = value.Value.Date; - context.FilterCriteria = op switch - { - "=" => new GroupOperator(GroupOperatorType.And, prop >= date, prop < date.AddDays(1)), - "<" => prop < date, - "<=" => prop < date.AddDays(1), - ">" => prop >= date.AddDays(1), - ">=" => prop >= date, - _ => prop == date - }; - } - private sealed class BandLayout { public List Bands { get; set; } = new(); diff --git a/DbFirst.BlazorWasm/Components/MassDataGrid.razor b/DbFirst.BlazorWasm/Components/MassDataGrid.razor index 1b8b76d..316267d 100644 --- a/DbFirst.BlazorWasm/Components/MassDataGrid.razor +++ b/DbFirst.BlazorWasm/Components/MassDataGrid.razor @@ -196,7 +196,7 @@ else ShowGroupPanel="true" ShowGroupedColumns="true" AllowGroup="true" - ShowFilterRow="true" + FilterMenuButtonDisplayMode="GridFilterMenuButtonDisplayMode.Always" AllowColumnResize="true" ColumnResizeMode="GridColumnResizeMode.ColumnsContainer" AllowColumnReorder="true" @@ -265,12 +265,6 @@ else private int pageCount = 1; private int? pageSize = 100; private string popupHeaderText = "Edit"; - private decimal? amountFilterValue; - private string amountFilterOperator = "="; - private DateTime? addedWhenFilterValue; - private string addedWhenFilterOperator = "="; - private DateTime? changedWhenFilterValue; - private string changedWhenFilterOperator = "="; private EditContext? editContext; private ValidationMessageStore? validationMessageStore; private IGrid? gridRef; @@ -317,15 +311,6 @@ else new() { Value = 0, Text = "PRMassdata_UpsertByCustomerName" } }; - private readonly List filterOperators = new() - { - new() { Value = "=", Text = "=" }, - new() { Value = "<", Text = "<" }, - new() { Value = ">", Text = ">" }, - new() { Value = "<=", Text = "<=" }, - new() { Value = ">=", Text = ">=" } - }; - private bool gridLayoutApplied; protected override async Task OnInitializedAsync() @@ -650,163 +635,9 @@ else builder.AddAttribute(seq++, "ReadOnly", true); } - if (string.Equals(column.FieldName, nameof(MassDataReadDto.Amount), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildAmountFilterTemplate()); - } - else if (string.Equals(column.FieldName, nameof(MassDataReadDto.AddedWhen), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildAddedWhenFilterTemplate()); - } - else if (string.Equals(column.FieldName, nameof(MassDataReadDto.ChangedWhen), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildChangedWhenFilterTemplate()); - } - builder.CloseComponent(); } - private RenderFragment BuildAmountFilterTemplate() - { - return BuildNumberFilterTemplate( - () => amountFilterValue, - value => amountFilterValue = value, - () => amountFilterOperator, - value => amountFilterOperator = value); - } - - private RenderFragment BuildAddedWhenFilterTemplate() - { - return BuildDateFilterTemplate( - () => addedWhenFilterValue, - value => addedWhenFilterValue = value, - () => addedWhenFilterOperator, - value => addedWhenFilterOperator = value); - } - - private RenderFragment BuildChangedWhenFilterTemplate() - { - return BuildDateFilterTemplate( - () => changedWhenFilterValue, - value => changedWhenFilterValue = value, - () => changedWhenFilterOperator, - value => changedWhenFilterOperator = value); - } - - private RenderFragment BuildNumberFilterTemplate( - Func getValue, - Action setValue, - Func getOperator, - Action setOperator) - { - return context => builder => - { - var seq = 0; - builder.OpenElement(seq++, "div"); - builder.AddAttribute(seq++, "class", "filter-row-cell"); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Data", filterOperators); - builder.AddAttribute(seq++, "TextFieldName", "Text"); - builder.AddAttribute(seq++, "ValueFieldName", "Value"); - builder.AddAttribute(seq++, "Value", getOperator()); - builder.AddAttribute(seq++, "ValueChanged", EventCallback.Factory.Create(this, value => - { - setOperator(value); - UpdateFilterCriteria(context, value, getValue()); - })); - builder.AddAttribute(seq++, "CssClass", "filter-operator"); - builder.CloseComponent(); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Value", getValue()); - builder.AddAttribute(seq++, "ValueChanged", EventCallback.Factory.Create(this, value => - { - setValue(value); - UpdateFilterCriteria(context, getOperator(), value); - })); - builder.AddAttribute(seq++, "ClearButtonDisplayMode", DataEditorClearButtonDisplayMode.Auto); - builder.AddAttribute(seq++, "CssClass", "filter-value filter-value-amount"); - builder.CloseComponent(); - - builder.CloseElement(); - }; - } - - private RenderFragment BuildDateFilterTemplate( - Func getValue, - Action setValue, - Func getOperator, - Action setOperator) - { - return context => builder => - { - var seq = 0; - builder.OpenElement(seq++, "div"); - builder.AddAttribute(seq++, "class", "filter-row-cell"); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Data", filterOperators); - builder.AddAttribute(seq++, "TextFieldName", "Text"); - builder.AddAttribute(seq++, "ValueFieldName", "Value"); - builder.AddAttribute(seq++, "Value", getOperator()); - builder.AddAttribute(seq++, "ValueChanged", EventCallback.Factory.Create(this, value => - { - setOperator(value); - UpdateFilterCriteria(context, value, getValue()); - })); - builder.AddAttribute(seq++, "CssClass", "filter-operator"); - builder.CloseComponent(); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Date", getValue()); - builder.AddAttribute(seq++, "DateChanged", EventCallback.Factory.Create(this, value => - { - setValue(value); - UpdateFilterCriteria(context, getOperator(), value); - })); - builder.AddAttribute(seq++, "ClearButtonDisplayMode", DataEditorClearButtonDisplayMode.Auto); - builder.AddAttribute(seq++, "CssClass", "filter-value"); - builder.CloseComponent(); - - builder.CloseElement(); - }; - } - - private void UpdateFilterCriteria(GridDataColumnFilterRowCellTemplateContext context, string op, object? value) - { - if (value == null) - { - context.FilterCriteria = null; - return; - } - - var prop = new OperandProperty(context.DataColumn.FieldName); - if (value is DateTime dateValue) - { - var date = dateValue.Date; - context.FilterCriteria = op switch - { - "=" => new GroupOperator(GroupOperatorType.And, prop >= date, prop < date.AddDays(1)), - "<" => prop < date, - "<=" => prop < date.AddDays(1), - ">" => prop >= date.AddDays(1), - ">=" => prop >= date, - _ => prop == date - }; - return; - } - - context.FilterCriteria = op switch - { - "<" => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.Less), - ">" => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.Greater), - "<=" => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.LessOrEqual), - ">=" => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.GreaterOrEqual), - _ => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.Equal) - }; - } - private void SetEditContext(EditContext context) { if (editContext == context) diff --git a/DbFirst.BlazorWebApp/Components/CatalogsGrid.razor b/DbFirst.BlazorWebApp/Components/CatalogsGrid.razor index a785c89..e8ae531 100644 --- a/DbFirst.BlazorWebApp/Components/CatalogsGrid.razor +++ b/DbFirst.BlazorWebApp/Components/CatalogsGrid.razor @@ -116,7 +116,7 @@ else ShowGroupPanel="true" ShowGroupedColumns="true" AllowGroup="true" - ShowFilterRow="true" + FilterMenuButtonDisplayMode="GridFilterMenuButtonDisplayMode.Always" AllowColumnResize="true" ColumnResizeMode="GridColumnResizeMode.ColumnsContainer" AllowColumnReorder="true" @@ -172,10 +172,6 @@ else private ValidationMessageStore? validationMessageStore; private IGrid? gridRef; private string popupHeaderText = "Edit"; - private DateTime? addedWhenFilterValue; - private string addedWhenFilterOperator = "="; - private DateTime? changedWhenFilterValue; - private string changedWhenFilterOperator = "="; private const string LayoutType = "GRID_BANDS"; private const string LayoutKey = "CatalogsGrid"; private const string LayoutUserStorageKey = "layoutUser"; @@ -202,15 +198,6 @@ else new() { Value = 1, Text = "PRTBMY_CATALOG_SAVE" } }; - private readonly List filterOperators = new() - { - new() { Value = "=", Text = "=" }, - new() { Value = "<", Text = "<" }, - new() { Value = ">", Text = ">" }, - new() { Value = "<=", Text = "<=" }, - new() { Value = ">=", Text = ">=" } - }; - private bool CanSaveBandLayout => !string.IsNullOrWhiteSpace(layoutUser); private bool gridLayoutApplied; @@ -716,97 +703,9 @@ else builder.AddAttribute(seq++, "ReadOnly", true); } - if (string.Equals(column.FieldName, nameof(CatalogReadDto.AddedWhen), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildAddedWhenFilterTemplate()); - } - else if (string.Equals(column.FieldName, nameof(CatalogReadDto.ChangedWhen), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildChangedWhenFilterTemplate()); - } - builder.CloseComponent(); } - private RenderFragment BuildAddedWhenFilterTemplate() - { - return BuildDateFilterTemplate( - () => addedWhenFilterValue, - value => addedWhenFilterValue = value, - () => addedWhenFilterOperator, - value => addedWhenFilterOperator = value); - } - - private RenderFragment BuildChangedWhenFilterTemplate() - { - return BuildDateFilterTemplate( - () => changedWhenFilterValue, - value => changedWhenFilterValue = value, - () => changedWhenFilterOperator, - value => changedWhenFilterOperator = value); - } - - private RenderFragment BuildDateFilterTemplate( - Func getValue, - Action setValue, - Func getOperator, - Action setOperator) - { - return context => builder => - { - var seq = 0; - builder.OpenElement(seq++, "div"); - builder.AddAttribute(seq++, "class", "filter-row-cell"); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Data", filterOperators); - builder.AddAttribute(seq++, "TextFieldName", "Text"); - builder.AddAttribute(seq++, "ValueFieldName", "Value"); - builder.AddAttribute(seq++, "Value", getOperator()); - builder.AddAttribute(seq++, "ValueChanged", EventCallback.Factory.Create(this, value => - { - setOperator(value); - UpdateFilterCriteria(context, value, getValue()); - })); - builder.AddAttribute(seq++, "CssClass", "filter-operator"); - builder.CloseComponent(); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Date", getValue()); - builder.AddAttribute(seq++, "DateChanged", EventCallback.Factory.Create(this, value => - { - setValue(value); - UpdateFilterCriteria(context, getOperator(), value); - })); - builder.AddAttribute(seq++, "ClearButtonDisplayMode", DataEditorClearButtonDisplayMode.Auto); - builder.AddAttribute(seq++, "CssClass", "filter-value"); - builder.CloseComponent(); - - builder.CloseElement(); - }; - } - - private void UpdateFilterCriteria(GridDataColumnFilterRowCellTemplateContext context, string op, DateTime? value) - { - if (!value.HasValue) - { - context.FilterCriteria = null; - return; - } - - var prop = new OperandProperty(context.DataColumn.FieldName); - var date = value.Value.Date; - context.FilterCriteria = op switch - { - "=" => new GroupOperator(GroupOperatorType.And, prop >= date, prop < date.AddDays(1)), - "<" => prop < date, - "<=" => prop < date.AddDays(1), - ">" => prop >= date.AddDays(1), - ">=" => prop >= date, - _ => prop == date - }; - } - private sealed class BandLayout { public List Bands { get; set; } = new(); diff --git a/DbFirst.BlazorWebApp/Components/MassDataGrid.razor b/DbFirst.BlazorWebApp/Components/MassDataGrid.razor index b9b764c..494d671 100644 --- a/DbFirst.BlazorWebApp/Components/MassDataGrid.razor +++ b/DbFirst.BlazorWebApp/Components/MassDataGrid.razor @@ -196,7 +196,7 @@ else ShowGroupPanel="true" ShowGroupedColumns="true" AllowGroup="true" - ShowFilterRow="true" + FilterMenuButtonDisplayMode="GridFilterMenuButtonDisplayMode.Always" AllowColumnResize="true" ColumnResizeMode="GridColumnResizeMode.ColumnsContainer" AllowColumnReorder="true" @@ -265,12 +265,6 @@ else private int pageCount = 1; private int? pageSize = 100; private string popupHeaderText = "Edit"; - private decimal? amountFilterValue; - private string amountFilterOperator = "="; - private DateTime? addedWhenFilterValue; - private string addedWhenFilterOperator = "="; - private DateTime? changedWhenFilterValue; - private string changedWhenFilterOperator = "="; private EditContext? editContext; private ValidationMessageStore? validationMessageStore; private IGrid? gridRef; @@ -305,27 +299,11 @@ else new() { Value = null, Text = "Alle" } }; - private readonly List statusFilterOptions = new() - { - new() { Value = null, Text = "Alle" }, - new() { Value = true, Text = "True" }, - new() { Value = false, Text = "False" } - }; - private readonly List procedureOptions = new() { new() { Value = 0, Text = "PRMassdata_UpsertByCustomerName" } }; - private readonly List filterOperators = new() - { - new() { Value = "=", Text = "=" }, - new() { Value = "<", Text = "<" }, - new() { Value = ">", Text = ">" }, - new() { Value = "<=", Text = "<=" }, - new() { Value = ">=", Text = ">=" } - }; - private bool gridLayoutApplied; protected override async Task OnInitializedAsync() @@ -650,163 +628,9 @@ else builder.AddAttribute(seq++, "ReadOnly", true); } - if (string.Equals(column.FieldName, nameof(MassDataReadDto.Amount), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildAmountFilterTemplate()); - } - else if (string.Equals(column.FieldName, nameof(MassDataReadDto.AddedWhen), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildAddedWhenFilterTemplate()); - } - else if (string.Equals(column.FieldName, nameof(MassDataReadDto.ChangedWhen), StringComparison.OrdinalIgnoreCase)) - { - builder.AddAttribute(seq++, "FilterRowCellTemplate", BuildChangedWhenFilterTemplate()); - } - builder.CloseComponent(); } - private RenderFragment BuildAmountFilterTemplate() - { - return BuildNumberFilterTemplate( - () => amountFilterValue, - value => amountFilterValue = value, - () => amountFilterOperator, - value => amountFilterOperator = value); - } - - private RenderFragment BuildAddedWhenFilterTemplate() - { - return BuildDateFilterTemplate( - () => addedWhenFilterValue, - value => addedWhenFilterValue = value, - () => addedWhenFilterOperator, - value => addedWhenFilterOperator = value); - } - - private RenderFragment BuildChangedWhenFilterTemplate() - { - return BuildDateFilterTemplate( - () => changedWhenFilterValue, - value => changedWhenFilterValue = value, - () => changedWhenFilterOperator, - value => changedWhenFilterOperator = value); - } - - private RenderFragment BuildNumberFilterTemplate( - Func getValue, - Action setValue, - Func getOperator, - Action setOperator) - { - return context => builder => - { - var seq = 0; - builder.OpenElement(seq++, "div"); - builder.AddAttribute(seq++, "class", "filter-row-cell"); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Data", filterOperators); - builder.AddAttribute(seq++, "TextFieldName", "Text"); - builder.AddAttribute(seq++, "ValueFieldName", "Value"); - builder.AddAttribute(seq++, "Value", getOperator()); - builder.AddAttribute(seq++, "ValueChanged", EventCallback.Factory.Create(this, value => - { - setOperator(value); - UpdateFilterCriteria(context, value, getValue()); - })); - builder.AddAttribute(seq++, "CssClass", "filter-operator"); - builder.CloseComponent(); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Value", getValue()); - builder.AddAttribute(seq++, "ValueChanged", EventCallback.Factory.Create(this, value => - { - setValue(value); - UpdateFilterCriteria(context, getOperator(), value); - })); - builder.AddAttribute(seq++, "ClearButtonDisplayMode", DataEditorClearButtonDisplayMode.Auto); - builder.AddAttribute(seq++, "CssClass", "filter-value filter-value-amount"); - builder.CloseComponent(); - - builder.CloseElement(); - }; - } - - private RenderFragment BuildDateFilterTemplate( - Func getValue, - Action setValue, - Func getOperator, - Action setOperator) - { - return context => builder => - { - var seq = 0; - builder.OpenElement(seq++, "div"); - builder.AddAttribute(seq++, "class", "filter-row-cell"); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Data", filterOperators); - builder.AddAttribute(seq++, "TextFieldName", "Text"); - builder.AddAttribute(seq++, "ValueFieldName", "Value"); - builder.AddAttribute(seq++, "Value", getOperator()); - builder.AddAttribute(seq++, "ValueChanged", EventCallback.Factory.Create(this, value => - { - setOperator(value); - UpdateFilterCriteria(context, value, getValue()); - })); - builder.AddAttribute(seq++, "CssClass", "filter-operator"); - builder.CloseComponent(); - - builder.OpenComponent>(seq++); - builder.AddAttribute(seq++, "Date", getValue()); - builder.AddAttribute(seq++, "DateChanged", EventCallback.Factory.Create(this, value => - { - setValue(value); - UpdateFilterCriteria(context, getOperator(), value); - })); - builder.AddAttribute(seq++, "ClearButtonDisplayMode", DataEditorClearButtonDisplayMode.Auto); - builder.AddAttribute(seq++, "CssClass", "filter-value"); - builder.CloseComponent(); - - builder.CloseElement(); - }; - } - - private void UpdateFilterCriteria(GridDataColumnFilterRowCellTemplateContext context, string op, object? value) - { - if (value == null) - { - context.FilterCriteria = null; - return; - } - - var prop = new OperandProperty(context.DataColumn.FieldName); - if (value is DateTime dateValue) - { - var date = dateValue.Date; - context.FilterCriteria = op switch - { - "=" => new GroupOperator(GroupOperatorType.And, prop >= date, prop < date.AddDays(1)), - "<" => prop < date, - "<=" => prop < date.AddDays(1), - ">" => prop >= date.AddDays(1), - ">=" => prop >= date, - _ => prop == date - }; - return; - } - - context.FilterCriteria = op switch - { - "<" => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.Less), - ">" => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.Greater), - "<=" => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.LessOrEqual), - ">=" => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.GreaterOrEqual), - _ => new BinaryOperator(prop, new OperandValue(value), BinaryOperatorType.Equal) - }; - } - private void SetEditContext(EditContext context) { if (editContext == context)