Пример #1
0
        public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            DataTablesFilter model = base.BindModel(controllerContext, bindingContext) as DataTablesFilter;

            if (model != null)
            {
                model.Echo   = GetValue(controllerContext, "sEcho");
                model.Search = GetValue(controllerContext, "sSearch");
                int size = 0;
                if (int.TryParse(GetValue(controllerContext, "iDisplayLength"), out size))
                {
                    model.PageSize = size;
                }
                int index = 0;
                if (int.TryParse(GetValue(controllerContext, "iDisplayStart"), out index))
                {
                    model.PageIndex = index / size + 1;
                }
                int columns = 0;
                model.Fields = new List <string>();
                if (int.TryParse(GetValue(controllerContext, "iColumns"), out columns))
                {
                    for (int i = 0; i < columns; ++i)
                    {
                        model.Fields.Add(GetValue(controllerContext, "mDataProp_" + i));
                    }
                }
                int sortColumn = 0;
                if (int.TryParse(GetValue(controllerContext, "iSortCol_0"), out sortColumn))
                {
                    model.SortFieldIndex = sortColumn;
                }
                model.SortDirection = string.Compare("asc", GetValue(controllerContext, "sSortDir_0")) == 0 ? SortDirection.Ascending : SortDirection.Descending;
            }
            return(model);
        }
 protected override void SetupFilter(ControllerContext ctx, IEnumerable<string> propertyNames)
 {
     RecordFilter = new DataTablesFilter();
     RecordFilter.Initialize(ctx.HttpContext.Request, propertyNames);
 }
Пример #3
0
        public JsonResult GetTableData(DataTablesFilter filter)
        {
            List <Form> data = new List <Form>()
            {
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
                new Form()
                {
                    InstanceCode = "0122313113", ApplyDate = "2015-10-12", ApplyEmpCode = "12121212"
                },
            };

            return(Json(new
            {
                //draw = 1,
                recordsFiltered = data.Count,
                //error =
                recordsTotal = data.Count,
                data = data.Skip(filter.iDisplayStart).Take(filter.PageSize).ToList()
            }, JsonRequestBehavior.AllowGet));
        }
        private T Bind <T>(IValueProvider valueProvider, T model) where T : DataTablesFilter
        {
            var dataTablesParam = new DataTablesParameters
            {
                iDisplayStart  = GetValue <int>(valueProvider, "start"),
                iDisplayLength = GetValue <int>(valueProvider, "length"),
                sSearch        = GetValue <string>(valueProvider, "search[value]"),
                bEscapeRegex   = GetValue <bool>(valueProvider, "search[regex]"),
                sEcho          = GetValue <int>(valueProvider, "draw")
            };
            var columnIndex = 0;

            while (true)
            {
                var column = string.Format("columns[{0}]", columnIndex);
                var data   = GetValue <string>(valueProvider, column + "[data]");
                if (data != null)
                {
                    var name = GetValue <string>(valueProvider, column + "[name]");
                    dataTablesParam.sColumnNames.Add(name.IsNotNullOrWhiteSpace() ? name : data);
                    dataTablesParam.bSortable.Add(GetValue <bool>(valueProvider, column + "[orderable]"));
                    dataTablesParam.bSearchable.Add(GetValue <bool>(valueProvider, column + "[searchable]"));
                    dataTablesParam.sSearchValues.Add(GetValue <string>(valueProvider, column + "[search][value]"));
                    dataTablesParam.bEscapeRegexColumns.Add(GetValue <bool>(valueProvider, column + "[searchable][regex]"));
                    ++columnIndex;
                }
                else
                {
                    break;
                }
            }
            dataTablesParam.iColumns = columnIndex;
            var orderIndex = 0;

            while (true)
            {
                var order    = string.Format("order[{0}]", orderIndex);
                var nullable = GetValue <int?>(valueProvider, order + "[column]");
                if (nullable.HasValue)
                {
                    dataTablesParam.iSortCol.Add(nullable.Value);
                    dataTablesParam.sSortDir.Add(GetValue <string>(valueProvider, order + "[dir]"));
                    ++orderIndex;
                }
                else
                {
                    break;
                }
            }
            for (var filterIndex = 0; filterIndex < dataTablesParam.iColumns; filterIndex++)
            {
                var filter       = string.Format("filteringItems[{0}]", filterIndex);
                var filteredItem = GetValue <string>(valueProvider, filter);
                if (filteredItem.IsNotNullOrWhiteSpace())
                {
                    dataTablesParam.RangedFilteredItems.Add(dataTablesParam.sColumnNames.ElementAt(filterIndex), filteredItem);
                }
            }
            dataTablesParam.iSortingCols = orderIndex;
            return(DataTablesFilter.PopulateFrom(model, dataTablesParam));
        }