Hi guys,
I've a problem of clearing the date filter, which was set using the filter API via a button (Filter Date).
When clearing all filters using the (Clear All Filter) button, this is retained and even changed.
The 'Clear All Filter Button' uses the method Reset() of the Datagrid
@using Radzen;
<div class="row">
<div class="col-md-12">
<RadzenButton Click="FilterWithDate" Text="Filter Date" />
<RadzenButton Click="ClearAllFilter" Text="Clear All Filter" />
</div>
<div class="col-md-12">
<RadzenDataGrid @ref="ProjectGrid" AllowFiltering="true" AllowPaging="false" AllowSorting="true" Data="@projectList" FilterMode="FilterMode.Advanced"
TItem="TestProject" LogicalFilterOperator="LogicalFilterOperator.And" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive">
<Columns>
<RadzenDataGridColumn TItem="TestProject" Property="Name" Title="Name" />
<RadzenDataGridColumn TItem="TestProject" Property="Created" Title="Erstellt am" />
<RadzenDataGridColumn TItem="TestProject" Property="Creator" Title="Erstellt von" />
<RadzenDataGridColumn TItem="TestProject" Property="Type" Title="Projekt-Typ">
<Template>
@context.Type.ToString()
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="TestProject" Property="IsFinished" Title="Fertig?" Width="10%" TextAlign="TextAlign.Center" >
<Template>
<RadzenCheckBox @bind-Value="context.IsFinished" Disabled="true" />
</Template>
<EditTemplate Context="project">
<RadzenCheckBox @bind-Value="project.IsFinished" />
</EditTemplate>
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="TestProject" Filterable="false" Sortable="false" TextAlign="TextAlign.Center" Width="10%">
<Template Context="project">
<RadzenButton Icon="edit" Size="ButtonSize.Medium" ></RadzenButton>
<RadzenButton ButtonStyle="ButtonStyle.Danger" Icon="close" Size="ButtonSize.Medium" ></RadzenButton>
</Template>
<EditTemplate Context="project">
<RadzenButton Icon="save" Size="ButtonSize.Medium" ></RadzenButton>
<RadzenButton Icon="cancel" Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Secondary" ></RadzenButton>
<RadzenButton ButtonStyle="ButtonStyle.Danger" Icon="close" Size="ButtonSize.Medium" ></RadzenButton>
</EditTemplate>
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid>
</div>
</div>
@code {
protected RadzenDataGrid<TestProject> ProjectGrid;
protected List<TestProject> projectList = new List<TestProject>();
protected override async Task OnInitializedAsync()
{
this.projectList.Add(new TestProject("Testprojekt1", true, "FilteredUser", 1, DateTime.Today.AddDays(3)));
this.projectList.Add(new TestProject("Testprojekt2", false, "FilteredUser", 1, DateTime.Today.AddDays(2)));
this.projectList.Add(new TestProject("Testprojekt3", true, "FilteredUser", 2, DateTime.Today.AddDays(1)));
this.projectList.Add(new TestProject("Testprojekt4", false, "NonFilteredUser", 1, DateTime.Today));
this.projectList.Add(new TestProject("Testprojekt5", true, "NonFilteredUser", 1, DateTime.Today.AddDays(-1)));
this.projectList.Add(new TestProject("Testprojekt6", false, "NonFilteredUser", 2, DateTime.Today.AddDays(-2)));
}
protected void FilterWithDate()
{
if (ProjectGrid != null)
{
#pragma warning disable BL0005 // Component parameter should not be set outside of its component.
var column = ProjectGrid.ColumnsCollection.Where(c => c.Property == "Created").FirstOrDefault();
if (column != null)
{
column.FilterValue = DateTime.Today.AddDays(-1);
column.FilterOperator = FilterOperator.GreaterThanOrEquals;
column.SecondFilterValue = DateTime.Today.AddDays(1);
column.SecondFilterOperator = FilterOperator.LessThanOrEquals;
column.LogicalFilterOperator = LogicalFilterOperator.And;
}
ProjectGrid.Reload();
#pragma warning restore BL0005 // Component parameter should not be set outside of its component.
}
}
protected void ClearAllFilter()
{
this.ProjectGrid.Reset();
}
public class TestProject {
public string Name { get; set; }
public DateTime Created { get; set; }
public bool IsFinished { get; set; }
public string Creator { get; set; }
public int Type { get; set; }
public TestProject(string name, bool isFinished, string creator, int type, DateTime created)
{
this.Name = name;
this.Created = created;
this.IsFinished = isFinished;
this.Creator = creator;
this.Type = type;
}
}
}