예제 #1
0
 public DataTableModel(DataTableDescriptor descriptor, string actionName, string controllerName = null, object routeValues = null)
     : this(descriptor)
 {
     this.DataAction      = actionName;
     this.DataController  = controllerName;
     this.DataRouteValues = routeValues;
 }
예제 #2
0
 private DataTableModel(DataTableDescriptor descriptor)
 {
     this.Id         = "DataTable" + Guid.NewGuid().ToString().Replace("-", "");
     this.Descriptor = descriptor;
 }
예제 #3
0
 public DataTableModel(DataTableDescriptor descriptor, string[][] data)
     : this(descriptor)
 {
     this.Data = data;
 }
예제 #4
0
 public DataTableModel(DataTableDescriptor descriptor, System.Uri dataUri)
     : this(descriptor)
 {
     this.DataUri = dataUri;
 }
예제 #5
0
        public static ActionResult DataTableResult <T>(this ControllerBase controller, DataTableDescriptor dataTableDescriptor, PagedResponse <T> result)
            where T : class
        {
            if (!dataTableDescriptor.GetSetting <bool>("allowPageCaching", false))
            {
                controller.DisablePageCaching();
            }

            var data = result.Results.Select(r => dataTableDescriptor.Columns.Select(c => Convert.ToString(((Func <T, dynamic>)c.Rendering)(r))).ToList().ToArray()).ToArray();

            return(new JsonResult()
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = new
                {
                    draw = result.Echo,
                    recordsTotal = result.TotalCount,
                    recordsFiltered = result.TotalFilteredCount,
                    data = data
                }
            });
        }