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 significally reduces boilerplate code and helps to avoid writing same logic of parsing requests for different model types.
PM> Install-Package DataTables.Queryable
// 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.
- 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.);
- Dynamically builds an expression tree from the request parameters and information about model type
T
using reflection; - Filters provided
IQueryable<T>
with the expression tree. - 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.
- 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
DataTables.Queryable is licensed under MIT license.