Automatic server side filtering/paging/sorting/grouping for Kendo UI Angular, using ASP.NET Core 3.0.
- Injectable naming service to convert JSON/API field names to C#/EF names (e.g. from snake case to pascal case)
- Automapper is used to map DB entities to DTOs, and back from DTO-based grid clauses to expressions that could be used in Dynamic LINQ/EntityFramework.
Angular application is not developed.
A complete request string generated by Kendo using toDataSourceRequestString
is shown here:
page=1&pageSize=10&
filter=(Salary~gte~1500~and~(FullName~startswith~'b'~or~FullName~startswith~'r')~and~Recruitment~gte~datetime'2015-01-01T00-00-00')&
sort=FullName-asc~Salary-asc&
group=Department-asc
Filter clauses have a little tricky syntax, so i'll give you some other examples:
- Two columns, one composite filter and one single filter
filter=((FirstName~startswith~'c'~or~FirstName~startswith~'d')~and~Salary~gte~1500)
- One column, composite filter
filter=(FirstName~startswith~'c'~or~FirstName~startswith~'d')
- Two columns, single filters
filter=(FirstName~contains~'c'~and~Salary~gte~1500)
- Single column, single filter
filter=FirstName~eq~'Bob'
Full kendo documentation is here
- No aggregates
- No complex mapping scenarios ()