Question Can't make dynamic filter based on Query. Filter on radzen data grid ?

ahmedaziz

Well-known member
Joined
Feb 22, 2023
Messages
55
Programming Experience
1-3
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

ridzen data grid html:
<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

list will receive data:
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

function have data after 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

filter expression:
(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

sample test static:
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
 
But this code already does it dynamically from the data grid:
C#:
var query = myDataGrid.Query.Filter;
var filteredList = databaseData.Where(query).ToList();
 
But this code already does it dynamically from the data grid:
so what this mean and How to solve issue please
 
It means that you are already doing what you are trying to achieve: dynamically getting the query filter.
 
No
on here
var filteredList = databaseData.Where(query).ToList();
i need to filter list databaseData based on condition on query variable and after that return list of data filtered
 
Oh. I see now. You never mentioned that the code doesn't compile. Or at least I'm guessing it doesn't compile based on the Radzen documentation regarding Query.Filter returning a string.

Time to learn about C#'s expression trees:
 

Latest posts

Back
Top Bottom