https://github.com/andreavitali/netcorekendogridbinding
Automatic server side filtering/paging/sorting/grouping for Kendo UI Angular, using ASP.NET Core 3.0.
https://github.com/andreavitali/netcorekendogridbinding
automapper dynamic-linq kendo-ui netcore3
Last synced: 5 days ago
JSON representation
Automatic server side filtering/paging/sorting/grouping for Kendo UI Angular, using ASP.NET Core 3.0.
- Host: GitHub
- URL: https://github.com/andreavitali/netcorekendogridbinding
- Owner: andreavitali
- Created: 2019-11-25T09:19:56.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-06-27T23:09:55.000Z (almost 3 years ago)
- Last Synced: 2026-06-21T01:32:33.272Z (5 days ago)
- Topics: automapper, dynamic-linq, kendo-ui, netcore3
- Language: C#
- Size: 20.5 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NetCoreKendoAngularGridBinding
## Description
Automatic server side filtering/paging/sorting/grouping for Kendo UI Angular, using ASP.NET Core 3.0.
## Main features
- 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.
## Notes
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](https://www.telerik.com/kendo-angular-ui/components/dataquery/mvc-integration/)
## Known limitations
- No aggregates
- No complex mapping scenarios ()
## Library used
- [System.Linq.Dynamic.Core](https://github.com/StefH/System.Linq.Dynamic.Core)
- [Automapper](https://github.com/AutoMapper/AutoMapper)