How to filter data dynamically on radzen data grid based on Query.Filter?

Ahmed Abd El Aziz 315 Reputation points
2023-07-25T17:54:07.6333333+00:00

I work on blazor server side .asp.net core 7 . I face issue I can't return data after filter from list on Radzen data grid

First I create radzen data grid on razor page

<RadzenDataGrid @ref="myDataGrid"  AllowColumnPicking="true" FilterMode="FilterMode.Simple" AllowFiltering="true" PageSizeOptions="@PagingOptions" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive" 
                                                data="@databaseData" >

second I create list that receive data after filter

private IEnumerable<CopyExcelDatabaseClass> databaseData = Array.Empty<CopyExcelDatabaseClass>();

    public class CopyExcelDatabaseClass
    {
     
        public string databaseName { get; set; }
        public int ServerID { get; set; }
        public string ServerName { get; set; }
        public string Severity { get; set; }


    }

third function is filter list based on dynamic condition get it from myDataGrid.Query.Filter

public void getListDataAfterFilter()

{

var query = myDataGrid.Query.Filter;

var filteredList = databaseData.Where(query).ToList();

}

this statement return condition Filter from radzen data grid after write filters

var query = myDataGrid.Query.Filter;

return below filter condition

(databaseName == null ? "" : databaseName).ToLower().Contains("Menna".ToLower()) and (serverity == null ? "" : serverity).ToLower().Contains("Mon".ToLower())

I try to get result from above and it worked fine but issue is tatic and i need it dynamically

var filteredList = databaseData.Where(item => item.databaseName.Contains("DB_U")).ToList();

but issue it static and I need it dynamically meaning based on condition filter Query.Filter

Developer technologies ASP.NET ASP.NET Core
Developer technologies .NET Blazor
{count} votes

1 answer

Sort by: Most helpful
  1. Vahid Ghafarpour 23,385 Reputation points Volunteer Moderator
    2023-07-25T18:26:09.5333333+00:00

    Did you try the System.Linq.Dynamic.Core

    public void getListDataAfterFilter()
    {
        var query = myDataGrid.Query.Filter;
        
        // Define the filter predicate dynamically
        var predicate = query.ToDynamicLinq<CopyExcelDatabaseClass>();
        
        // Use the dynamic predicate to filter the databaseData list
        var filteredList = databaseData.AsQueryable().Where(predicate).ToList();
    }
    

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.