Skip to content

.Net library for clever processing of requests from datatables.net jQuery plugin on the server side (ASP.NET, Nancy or any other web server).

License

Notifications You must be signed in to change notification settings

AlexanderKrutov/DataTables.Queryable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Alexander Krutov
Dec 11, 2018
817be59 · Dec 11, 2018

History

77 Commits
Aug 27, 2018
Oct 26, 2018
Dec 11, 2018
Nov 18, 2016
Nov 20, 2016
Aug 27, 2018
Aug 27, 2018
Nov 18, 2016
Sep 13, 2018
Oct 26, 2018

Repository files navigation

DataTables.Queryable

What is it?

It is a .Net library for clever processing of requests from datatables.net jQuery plugin on the server side (ASP.NET, Nancy or any other web server).

The library significantly reduces boilerplate code and helps to avoid writing same logic of parsing requests for different model types.

Installation NuGet Status

PM> Install-Package DataTables.Queryable

How to use it?

// ASP.NET action handler inside a controller:
public JsonResult DataTablesRequestAction()
{
    // make a DataTablesRequest object from the incoming Http query string
    var request = new DataTablesRequest<Person>(Request.QueryString);
    
    using (var ctx = new DatabaseContext())
    {
        // take persons from database, apply the DataTablesRequest filter and paginate
        var persons = ctx.Persons.ToPagedList(request);
     
        // push back a result in JSON form applicable for datatables.net
        return JsonDataTable(persons);
    }
}

Need more info? Welcome to the wiki.

How it works?

  1. DataTables.Queryable parses data from an incoming Http request and extracts related parameters (search text, columns ordering info, page number and number of records per page and etc.);
  2. Dynamically builds an expression tree from the request parameters and information about model type T using reflection;
  3. Filters provided IQueryable<T> with the expression tree.
  4. Returns query result as a PagedList<T> instance (collection of items that represents a single page of extracted data).

Take a closer look what happens inside.

Features

  • Global search, individual column search, ordering by one or many columns, pagination
  • Custom request parameters
  • Custom search predicates
  • Supports nested properties
  • Lazy data loading from provided IQueryable<T> (only filtered records will be extracted)
  • Compatible with Entity Framework

License

DataTables.Queryable is licensed under MIT license.