Skip to content
Add server paging, filtering and sorting via Dynamic Linq
Branch: master
Clone or download
burkeholland Update
Added disclaimer for official support
Latest commit 459b11d Aug 20, 2014
Type Name Latest commit message Commit time
Failed to load latest commit information.
Kendo.DynamicLinq Bump up the version. Jul 16, 2014
packages Aggregate results now can be serialized by WCF. Fixes #9. Jun 18, 2014
.travis.yml Add travis apt caching Jun 18, 2014
Kendo.DynamicLinq.sln Update Aug 20, 2014
travis.proj Fix the build target. Jun 18, 2014


Build Status


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.


  1. Add the Kendo.DynamicLinq NuGet package to your project.

  2. Configure your Kendo DataSource to send its options as JSON.

     parameterMap: function(options, type) {
         return JSON.stringify(options);
  3. Configure the schema of the DataSource.

     schema: {
         data: "Data",
         total: "Total",
         aggregates: "Aggregates"
  4. Import the Kendo.DynamicLinq namespace.

  5. Use the ToDataSourceResult extension method to apply paging, sorting and filtering.

     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.

You can’t perform that action at this time.