You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.7 KiB
40 lines
1.7 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using NzbDrone.Web.Models;
|
|
|
|
namespace NzbDrone.Web.Helpers
|
|
{
|
|
/// <summary>
|
|
/// Model binder for datatables.js parameters a la http://geeksprogramando.blogspot.com/2011/02/jquery-datatables-plug-in-with-asp-mvc.html
|
|
/// </summary>
|
|
public class DataTablesModelBinder : IModelBinder
|
|
{
|
|
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
|
|
{
|
|
DataTablesParams obj = new DataTablesParams();
|
|
var request = controllerContext.HttpContext.Request.Params;
|
|
|
|
obj.iDisplayStart = Convert.ToInt32(request["iDisplayStart"]);
|
|
obj.iDisplayLength = Convert.ToInt32(request["iDisplayLength"]);
|
|
obj.iColumns = Convert.ToInt32(request["iColumns"]);
|
|
obj.sSearch = request["sSearch"];
|
|
obj.bEscapeRegex = Convert.ToBoolean(request["bEscapeRegex"]);
|
|
obj.iSortingCols = Convert.ToInt32(request["iSortingCols"]);
|
|
obj.sEcho = int.Parse(request["sEcho"]);
|
|
|
|
for (int i = 0; i < obj.iColumns; i++)
|
|
{
|
|
obj.bSortable.Add(Convert.ToBoolean(request["bSortable_" + i]));
|
|
obj.bSearchable.Add(Convert.ToBoolean(request["bSearchable_" + i]));
|
|
obj.sSearchColumns.Add(request["sSearch_" + i]);
|
|
obj.bEscapeRegexColumns.Add(Convert.ToBoolean(request["bEscapeRegex_" + i]));
|
|
obj.iSortCol.Add(Convert.ToInt32(request["iSortCol_" + i]));
|
|
obj.sSortDir.Add(request["sSortDir_" + i]);
|
|
}
|
|
return obj;
|
|
}
|
|
}
|
|
} |