#Kendo.DynamicLinq
Kendo UI Labs projects are experimental and largely built and supported by the community. As such Telerik does not provide official support for any of the Kendo UI Labs projects via Telerik support agreements. We do encourage you to open an issue or visit Stack Overflow.
Kendo.DynamicLinq implements server paging, filtering, sorting and aggregating via Dynamic Linq.
-
Add the Kendo.DynamicLinq NuGet package to your project.
-
Configure your Kendo DataSource to send its options as JSON.
parameterMap: function(options, type) { return JSON.stringify(options); }
-
Configure the
schema
of the DataSource.schema: { data: "Data", total: "Total", aggregates: "Aggregates" }
-
Import the Kendo.DynamicLinq namespace.
-
Use the
ToDataSourceResult
extension method to apply paging, sorting and filtering.[WebMethod] public static DataSourceResult Products(int take, int skip, IEnumerable<Sort> sort, Filter filter, IEnumerable<Aggregator> aggregates) { using (var northwind = new Northwind()) { return northwind.Products .OrderBy(p => p.ProductID) // EF requires ordering for paging // Use a view model to avoid serializing internal Entity Framework properties as JSON .Select(p => new ProductViewModel { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p.UnitPrice, UnitsInStock = p.UnitsInStock, Discontinued = p.Discontinued }) .ToDataSourceResult(take, skip, sort, filter, aggregates); } }
The following examples use Kendo.DynamicLinq.