mdelgert / dlinq-helpers

Add server paging, filtering and sorting via Dynamic Linq

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#Kendo.DynamicLinq

Build Status

Note

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.

Description

Kendo.DynamicLinq implements server paging, filtering, sorting and aggregating via Dynamic Linq.

Usage

  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.

     [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);
         }
     }
    

Examples

The following examples use Kendo.DynamicLinq.

About

Add server paging, filtering and sorting via Dynamic Linq


Languages

Language:C# 100.0%