Skip to content

Commit 95448de

Browse files
committed
DataGrid column CloseFilter() does not work when FilterProperty has a value
1 parent 0a57476 commit 95448de

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

Radzen.Blazor/RadzenDataGridColumn.razor.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System;
44
using System.Collections;
55
using System.Collections.Generic;
6+
using System.Data.Common;
67
using System.Globalization;
78
using System.Linq;
89
using System.Linq.Expressions;
@@ -1420,7 +1421,15 @@ public async Task CloseFilter()
14201421
{
14211422
await headerCell.CloseFilter();
14221423
}
1423-
await Grid.GetJSRuntime().InvokeVoidAsync("Radzen.closePopup", $"{Grid.PopupID}{GetFilterProperty()}");
1424+
await Grid.GetJSRuntime().InvokeVoidAsync("Radzen.closePopup", $"{GetColumnPopupID()}");
1425+
}
1426+
1427+
internal string GetColumnPopupID()
1428+
{
1429+
var fiterProperty = Property != FilterProperty && !string.IsNullOrEmpty(FilterProperty) ?
1430+
$"{Property}{GetFilterProperty()}" : GetFilterProperty();
1431+
1432+
return $"{Grid.PopupID}{(string.IsNullOrEmpty(fiterProperty) ? Grid.allColumns.IndexOf(this).ToString() : fiterProperty)}";
14241433
}
14251434

14261435
string runtimeWidth;

Radzen.Blazor/RadzenDataGridHeaderCell.razor

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
@Grid.FilterIcon
6666
</i>
6767

68-
<Popup Lazy=@(Grid.FilterPopupRenderMode == PopupRenderMode.OnDemand) @ref=popup id="@($"{getColumnPopupID()}")" class="rz-overlaypanel"
68+
<Popup Lazy=@(Grid.FilterPopupRenderMode == PopupRenderMode.OnDemand) @ref=popup id="@($"{Column.GetColumnPopupID()}")" class="rz-overlaypanel"
6969
style="display:none;min-width:250px;" @onkeydown="OnFilterPopupKeyPressed">
7070
<div class="rz-overlaypanel-content">
7171
@if (Column.FilterTemplate != null)
@@ -74,7 +74,7 @@
7474
}
7575
else
7676
{
77-
<form id="@($"{getColumnPopupID()}-form")" @onsubmit="@(args => ApplyFilter())" class="rz-grid-filter">
77+
<form id="@($"{Column.GetColumnPopupID()}-form")" @onsubmit="@(args => ApplyFilter())" class="rz-grid-filter">
7878
@if (filterMode == FilterMode.Advanced)
7979
{
8080
<span class="rz-grid-filter-label">@Grid.FilterText</span>
@@ -108,7 +108,7 @@
108108
}
109109
else
110110
{
111-
<RadzenTextBox Disabled="@(!Column.CanSetFilterValue())" id="@($"{getColumnPopupID()}-sf")" aria-label=@(Column.Title + Grid.FilterValueAriaLabel + Column.GetFilterValue()) Value="@($"{Column.GetFilterValue()}")" Change="@(args => Column.SetFilterValue(args))" />
111+
<RadzenTextBox Disabled="@(!Column.CanSetFilterValue())" id="@($"{Column.GetColumnPopupID()}-sf")" aria-label=@(Column.Title + Grid.FilterValueAriaLabel + Column.GetFilterValue()) Value="@($"{Column.GetFilterValue()}")" Change="@(args => Column.SetFilterValue(args))" />
112112
}
113113

114114
<RadzenDropDown @onclick:preventDefault="true" TextProperty="Text" ValueProperty="Value" Style="width: 90px" InputAttributes="@(new Dictionary<string,object>(){ { "aria-label", Column.Title + Grid.LogicalOperatorAriaLabel + (Column.LogicalFilterOperator == LogicalFilterOperator.And ? Grid.AndOperatorText : Grid.OrOperatorText) }})"
@@ -142,7 +142,7 @@
142142
}
143143
else
144144
{
145-
<RadzenTextBox Disabled="@(!Column.CanSetFilterValue(false))" id="@($"{getColumnPopupID()}-sf2")" aria-label=@(Column.Title + Grid.SecondFilterValueAriaLabel + Column.GetSecondFilterValue()) Value="@($"{Column.GetSecondFilterValue()}")" Change="@(args => Column.SetFilterValue(args, false))" />
145+
<RadzenTextBox Disabled="@(!Column.CanSetFilterValue(false))" id="@($"{Column.GetColumnPopupID()}-sf2")" aria-label=@(Column.Title + Grid.SecondFilterValueAriaLabel + Column.GetSecondFilterValue()) Value="@($"{Column.GetSecondFilterValue()}")" Change="@(args => Column.SetFilterValue(args, false))" />
146146
}
147147
}
148148
else
@@ -180,7 +180,7 @@
180180
{
181181
<div class="rz-grid-filter-buttons">
182182
<RadzenButton ButtonStyle="ButtonStyle.Base" class="rz-clear-filter" Click="@ClearFilter" Text=@Grid.ClearFilterText title="@Grid.ClearFilterText" />
183-
<RadzenButton onmousedown="@getBlur()" ButtonStyle="ButtonStyle.Primary" class="rz-apply-filter" form="@($"{getColumnPopupID()}-form")" ButtonType="ButtonType.Submit" Text=@Grid.ApplyFilterText title="@Grid.ApplyFilterText" />
183+
<RadzenButton onmousedown="@getBlur()" ButtonStyle="ButtonStyle.Primary" class="rz-apply-filter" form="@($"{Column.GetColumnPopupID()}-form")" ButtonType="ButtonType.Submit" Text=@Grid.ApplyFilterText title="@Grid.ApplyFilterText" />
184184
</div>
185185
}
186186
</Popup>
@@ -340,7 +340,7 @@ else
340340

341341
string getFilterOpen()
342342
{
343-
return Grid.FilterPopupRenderMode == PopupRenderMode.Initial ? $"Radzen.togglePopup(this, '{getColumnPopupID()}', false, null, null, true, true)" : "";
343+
return Grid.FilterPopupRenderMode == PopupRenderMode.Initial ? $"Radzen.togglePopup(this, '{Column.GetColumnPopupID()}', false, null, null, true, true)" : "";
344344
}
345345

346346
async Task ToggleFilter()
@@ -464,14 +464,6 @@ else
464464
return Task.CompletedTask;
465465
}
466466

467-
string getColumnPopupID()
468-
{
469-
var fiterProperty = Column.Property != Column.FilterProperty && !string.IsNullOrEmpty(Column.FilterProperty) ?
470-
$"{Column.Property}{Column.GetFilterProperty()}" : Column.GetFilterProperty();
471-
472-
return $"{Grid.PopupID}{(string.IsNullOrEmpty(fiterProperty) ? Grid.allColumns.IndexOf(Column).ToString() : fiterProperty)}";
473-
}
474-
475467
protected override void OnParametersSet()
476468
{
477469
base.OnParametersSet();
@@ -514,7 +506,7 @@ else
514506
}
515507
else
516508
{
517-
await Grid.GetJSRuntime().InvokeVoidAsync("Radzen.togglePopup", filterButton, getColumnPopupID(), false, null, null, true, true);
509+
await Grid.GetJSRuntime().InvokeVoidAsync("Radzen.togglePopup", filterButton, Column.GetColumnPopupID(), false, null, null, true, true);
518510
}
519511
}
520512

0 commit comments

Comments
 (0)