public static object GetGridData(JqGridRequest jqGridRequest) { var repo = new CustomerRepository(); IEnumerable<Customer> customers; var criteria = new List<Func<Customer, bool>>(); if (jqGridRequest.IsSearch) { foreach (var rule in jqGridRequest.Where.rules) { var userData = rule.data.ToLower(); if (rule.field == "Id") { criteria.Add(x => x.Id.ToString() == userData); } if (rule.field == "Firstname") { criteria.Add(x => x.Firstname.ToLower().Contains(userData)); } if (rule.field == "Lastname") { criteria.Add(x => x.Lastname.ToLower().Contains(userData)); } if (rule.field == "Email") { criteria.Add(x => x.Email.ToLower().Contains(userData)); } if (rule.field == "DateOfBirth") { criteria.Add(x => x.DateOfBirth.ToString().ToLower().Contains(userData)); } if (rule.field == "City") { criteria.Add(x => x.City.ToLower().Contains(userData)); } } } switch (jqGridRequest.SortIndex) { case "Id": customers = repo.GetAll(criteria, jqGridRequest.PageIndex - 1, jqGridRequest.PageSize, x => x.Id, jqGridRequest.SortOrder); break; case "Firstname": customers = repo.GetAll(criteria, jqGridRequest.PageIndex - 1, jqGridRequest.PageSize, x => x.Firstname, jqGridRequest.SortOrder); break; case "Lastname": customers = repo.GetAll(criteria, jqGridRequest.PageIndex - 1, jqGridRequest.PageSize, x => x.Lastname, jqGridRequest.SortOrder); break; case "Email": customers = repo.GetAll(criteria, jqGridRequest.PageIndex - 1, jqGridRequest.PageSize, x => x.Email, jqGridRequest.SortOrder); break; case "DateOfBirth": customers = repo.GetAll(criteria, jqGridRequest.PageIndex - 1, jqGridRequest.PageSize, x => x.DateOfBirth, jqGridRequest.SortOrder); break; case "City": customers = repo.GetAll(criteria, jqGridRequest.PageIndex - 1, jqGridRequest.PageSize, x => x.City, jqGridRequest.SortOrder); break; default: customers = repo.GetAll(criteria, jqGridRequest.PageIndex - 1, jqGridRequest.PageSize, x => x.Id, jqGridRequest.SortOrder); break; } var totalCustomers = repo.GetAll(criteria).Count(); return new { total = (totalCustomers / jqGridRequest.PageSize) + ((totalCustomers % jqGridRequest.PageSize > 0) ? 1 : 0), page = jqGridRequest.PageIndex, records = totalCustomers, rows = ( from c in customers select new Dictionary<string, string> { {"Id", c.Id.ToString() }, // Id must always be specified!! {"Firstname", c.Firstname}, {"Lastname", c.Lastname}, {"Email", c.Email}, {"DateOfBirth", c.DateOfBirth.ToShortDateString()}, {"City", c.City} }).ToArray() }; }
public ActionResult GetGrid(JqGridRequest request, string key, string value, string viewModel, string field, long?id_master) { string fieldMain = String.Empty; long ID_master; bool result = Int64.TryParse(id_master.ToString(), out ID_master); if (String.IsNullOrEmpty(field)) { fieldMain = "IDDokumentGr"; } else { fieldMain = field; } viewModel = gridModelNamespace + viewModel; string filterExpression = String.Empty; if (request.Searching) { if (request.SearchingFilter != null) { filterExpression = GetFilter(request.SearchingFilter.SearchingName, request.SearchingFilter.SearchingOperator, request.SearchingFilter.SearchingValue); } else if (request.SearchingFilters != null) { StringBuilder filterExpressionBuilder = new StringBuilder(); string groupingOperatorToString = request.SearchingFilters.GroupingOperator.ToString(); foreach (JqGridRequestSearchingFilter searchingFilter in request.SearchingFilters.Filters) { filterExpressionBuilder.Append(GetFilter(searchingFilter.SearchingName, searchingFilter.SearchingOperator, searchingFilter.SearchingValue)); filterExpressionBuilder.Append(String.Format(KeyWord.FormaterRazno.StringFormat.Prvi, groupingOperatorToString)); } if (filterExpressionBuilder.Length > 0) { filterExpressionBuilder.Remove(filterExpressionBuilder.Length - groupingOperatorToString.Length - 2, groupingOperatorToString.Length + 2); } filterExpression = filterExpressionBuilder.ToString(); } } string sortingName = request.SortingName; long totalRecordsCount = GetCount(filterExpression, key, value); JqGridResponse response = new JqGridResponse() { TotalPagesCount = (int)Math.Ceiling((float)totalRecordsCount / (float)request.RecordsCount), PageIndex = request.PageIndex, TotalRecordsCount = totalRecordsCount, }; response.Records.AddRange ( from item in GetGridData(filterExpression, key, value, String.Format(KeyWord.FormaterRazno.StringFormat.PrviDrugi, sortingName, request.SortingOrder), request.PageIndex * request.RecordsCount, (request.PagesCount.HasValue ? request.PagesCount.Value : 1) * request.RecordsCount) select new JqGridRecord(Convert.ToString(item.GetType().GetProperty(fieldMain).GetValue(item, null)), Activator.CreateInstance(Type.GetType(viewModel), new[] { item })) ); return(new JqGridJsonResult() { Data = response }); }
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { if (controllerContext == null) throw new ArgumentNullException("controllerContext"); if (bindingContext == null) throw new ArgumentNullException("bindingContext"); JqGridRequest model = new JqGridRequest(); model.Searching = false; if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.Searching)) { ValueProviderResult searchingResult = bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.Searching); if (searchingResult != null) model.Searching = (bool)searchingResult.ConvertTo(typeof(Boolean)); } model.SearchingFilter = null; model.SearchingFilters = null; if (model.Searching) { ValueProviderResult searchingFiltersResult = bindingContext.ValueProvider.GetValue("filters"); if (searchingFiltersResult != null && !String.IsNullOrWhiteSpace(searchingFiltersResult.AttemptedValue)) { JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.RegisterConverters(new JavaScriptConverter[] { new Lib.Web.Mvc.JQuery.JqGrid.Serialization.JqGridScriptConverter() }); model.SearchingFilters = serializer.Deserialize<JqGridRequestSearchingFilters>((string)searchingFiltersResult.ConvertTo(typeof(String))); } else { string searchingName = String.Empty; ValueProviderResult searchingNameResult = bindingContext.ValueProvider.GetValue("searchField"); if (searchingNameResult != null) searchingName = (string)searchingNameResult.ConvertTo(typeof(String)); string searchingValue = String.Empty; ValueProviderResult searchingValueResult = bindingContext.ValueProvider.GetValue("searchString"); if (searchingValueResult != null) searchingValue = (string)searchingValueResult.ConvertTo(typeof(String)); JqGridSearchOperators searchingOperator = JqGridSearchOperators.Eq; ValueProviderResult searchingOperatorResult = bindingContext.ValueProvider.GetValue("searchOper"); if (searchingOperatorResult != null) Enum.TryParse<JqGridSearchOperators>((string)searchingOperatorResult.ConvertTo(typeof(String)), true, out searchingOperator); if (!String.IsNullOrWhiteSpace(searchingName) && (!String.IsNullOrWhiteSpace(searchingValue) || ((searchingOperator & JqGridSearchOperators.NullOperators) != 0))) model.SearchingFilter = new JqGridRequestSearchingFilter() { SearchingName = searchingName, SearchingOperator = searchingOperator, SearchingValue = searchingValue }; } } if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.SortingName)) { ValueProviderResult sortingName = bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.SortingName); if (sortingName != null && !String.IsNullOrWhiteSpace(sortingName.AttemptedValue)) model.SortingName = (string)sortingName.ConvertTo(typeof(String)); } if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.SortingOrder)) { ValueProviderResult sortingOrder = bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.SortingOrder); if (sortingOrder != null && !String.IsNullOrWhiteSpace(sortingOrder.AttemptedValue)) model.SortingOrder = (JqGridSortingOrders)sortingOrder.ConvertTo(typeof(JqGridSortingOrders)); } if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.PageIndex)) model.PageIndex = (int)bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.PageIndex).ConvertTo(typeof(Int32)) - 1; else model.PageIndex = 0; model.PagesCount = null; if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.PagesCount)) { ValueProviderResult pagesCountValueResult = bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.PagesCount); if (pagesCountValueResult != null) model.PagesCount = (int)pagesCountValueResult.ConvertTo(typeof(Int32)); } if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.RecordsCount)) model.RecordsCount = (int)bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.RecordsCount).ConvertTo(typeof(Int32)); return model; }
public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (ParametersNames == null) { ParametersNames = JqGridRequest.ParameterNames; } var oper = context.Controller.ValueProvider.GetValue(ParametersNames.Operator)?.AttemptedValue; if (oper == null) { var requestModel = new JqGridRequest(); var requestModelState = Helpers.BindModel(ref requestModel, context); if (!requestModelState.IsValid) { throw new JqGridModelBindingException("Error binding JqGrid request model", requestModelState); } var filterExpression = string.Empty; if (requestModel.Searching) { if (requestModel.SearchingFilter != null) { filterExpression = GetFilter(requestModel.SearchingFilter.SearchingName, requestModel.SearchingFilter.SearchingOperator, requestModel.SearchingFilter.SearchingValue); } else if (requestModel.SearchingFilters != null) { var filterExpressionBuilder = new StringBuilder(); var groupingOperatorToString = requestModel.SearchingFilters.GroupingOperator.ToString(); foreach (var searchingFilter in requestModel.SearchingFilters.Filters) { filterExpressionBuilder.Append(GetFilter(searchingFilter.SearchingName, searchingFilter.SearchingOperator, searchingFilter.SearchingValue)); filterExpressionBuilder.Append($" {groupingOperatorToString} "); } if (filterExpressionBuilder.Length > 0) { filterExpressionBuilder.Remove(filterExpressionBuilder.Length - groupingOperatorToString.Length - 2, groupingOperatorToString.Length + 2); } filterExpression = filterExpressionBuilder.ToString(); } else { var filterExpressionBuilder = new StringBuilder(); foreach (var property in typeof(T).GetProperties().Where(p => { var attrs = p.GetCustomAttributes <JqGridColumnSearchableAttribute>(false); return(!attrs.Any() || attrs.Any(a => a.Searchable)); })) { var value = context.Controller.ValueProvider.GetValue(property.Name)?.AttemptedValue; if (value == null) { continue; } filterExpressionBuilder.Append(property.PropertyType == typeof(string) ? $"{property.Name} = \"{value}\" AND " : $"{property.Name} = {value} AND "); if (filterExpressionBuilder.Length > 0) { filterExpressionBuilder.Remove(filterExpressionBuilder.Length - 5, 5); } filterExpression = filterExpressionBuilder.ToString(); } } } var totalRecords = _rows.Count(); if (_additionalSelector != null) { _rows = _rows.Where(_additionalSelector); } if (!string.IsNullOrEmpty(filterExpression)) { _rows = _rows.Where(filterExpression); } if (IsSortingEnabled) { if (!string.IsNullOrWhiteSpace(requestModel.SortingName)) { _rows = _rows.OrderBy($"{requestModel.SortingName} {requestModel.SortingOrder}"); } else { var props = typeof(T).GetProperties(); if (props.Length == 0) { throw new NoGetPropertiesException(); } _rows = _rows.OrderBy($"{props[0].Name} {requestModel.SortingOrder}"); } } if (IsPagingEnabled) { _rows = _rows .Skip(requestModel.PageIndex * requestModel.RecordsCount) .Take(requestModel.PagesCount ?? 1 * requestModel.RecordsCount); } var response = new JqGridResponse { TotalPagesCount = (int)Math.Ceiling((float)totalRecords / requestModel.RecordsCount), PageIndex = requestModel.PageIndex, TotalRecordsCount = totalRecords, Reader = JsonReader ?? JqGridResponse.JsonReader }; response.Records.AddRange(_rows.ToList().Select(r => new JqGridRecord(r.Id.ToString(), r))); new JqGridJsonResult { Data = response, JsonRequestBehavior = JsonRequestBehavior }.ExecuteResult(context); } else if (oper == ParametersNames.AddOperator) { if (_addFunc == null) { throw new FunctionMissedException("No add function"); } var rowModel = new T(); var rowModelState = Helpers.BindModel(ref rowModel, context); if (!rowModelState.IsValid) { throw new JqGridModelBindingException("Error binding row model", rowModelState); } var result = _addFunc(rowModel); if (result?.Success ?? true) { new JqGridFormOperationResult(rowModel.Id) { JsonRequestBehavior = JsonRequestBehavior }.ExecuteResult(context); } else { if (EnableAddJsonResponse) { InitFormOptions(); new JqGridFormOperationResult(result.Message ?? AddErrorMessage ?? EditErrorMessage) { JsonRequestBehavior = JsonRequestBehavior }.ExecuteResult(context); } else { new HttpStatusCodeResult(HttpStatusCode.BadRequest, (result.Message ?? AddErrorMessage ?? EditErrorMessage).Replace("\n", "")) .ExecuteResult(context); } } } else if (oper == ParametersNames.EditOperator) { if (_editFunc == null) { throw new FunctionMissedException("No edit function"); } var editRowModel = new T(); var editRowModelState = Helpers.BindModel(ref editRowModel, context); if (!editRowModelState.IsValid) { throw new JqGridModelBindingException("Error binding row model", editRowModelState); } var result = _editFunc(editRowModel); if (result?.Success ?? true) { if (EnableEditJsonResponse) { new JqGridFormOperationResult { JsonRequestBehavior = JsonRequestBehavior }.ExecuteResult(context); } else { new HttpStatusCodeResult(HttpStatusCode.OK).ExecuteResult(context); } } else { if (EnableEditJsonResponse) { InitFormOptions(); new JqGridFormOperationResult(result.Message ?? EditErrorMessage) { JsonRequestBehavior = JsonRequestBehavior }.ExecuteResult(context); } else { new HttpStatusCodeResult(HttpStatusCode.BadRequest, (result.Message ?? EditErrorMessage).Replace("\n", "")) .ExecuteResult(context); } } } else if (oper == ParametersNames.DeleteOperator) { if (_delFunc == null) { throw new FunctionMissedException("No delete function"); } var delRowModel = new T(); var delRowModelState = Helpers.BindModel(ref delRowModel, context); if (!delRowModelState.IsValid) { throw new JqGridModelBindingException("Error binding row model", delRowModelState); } var result = _delFunc(delRowModel.Id); if (result?.Success ?? true) { if (EnableDeleteJsonResponse) { new JqGridFormOperationResult { JsonRequestBehavior = JsonRequestBehavior }.ExecuteResult(context); } else { new HttpStatusCodeResult(HttpStatusCode.OK).ExecuteResult(context); } } else { if (EnableDeleteJsonResponse) { InitFormOptions(); new JqGridFormOperationResult(result.Message ?? DeleteErrorMessage ?? EditErrorMessage) { JsonRequestBehavior = JsonRequestBehavior }.ExecuteResult(context); } else { new HttpStatusCodeResult(HttpStatusCode.BadRequest, (result.Message ?? DeleteErrorMessage ?? EditErrorMessage).Replace("\n", "")) .ExecuteResult(context); } } } else { context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; } }
public async Task <DataGridViewModel <ProductDataGridViewModel> > GetDataGridSource(string orderBy, JqGridRequest request, NameValueCollection form, DateTimeType dateTimeType, int page, int pageSize) { var usersQuery = _products.AsQueryable(); var query = new JqGridSearch(request, form, dateTimeType).ApplyFilter(usersQuery); var dataGridModel = new DataGridViewModel <ProductDataGridViewModel> { Records = await query.AsQueryable().OrderBy(orderBy) .Skip(page * pageSize) .Take(pageSize).ProjectTo <ProductDataGridViewModel>(null, _mappingEngine).ToListAsync(), TotalCount = await query.AsQueryable().OrderBy(orderBy).CountAsync() }; return(dataGridModel); }
private IList <ApsClientModel> FilterCharacters(IList <ApsClientModel> queryableList, JqGridRequest request) { Func <ApsClientModel, bool> filterPredicate = null; if (request.Searching) { if (request.SearchingFilter != null) { filterPredicate = GetCharacterSearchingFilterPredicate(request.SearchingFilter); } else if (request.SearchingFilters != null) { filterPredicate = GetCharacterSearchingFiltersPredicate(request.SearchingFilters); } } return((filterPredicate == null) ? queryableList : queryableList.Where(character => filterPredicate(character)).ToList()); }
public ActionResult GetPageListJson(long itemId, string condition, string keyword, JqGridRequest request) { Expression <Func <DataItemDetailEntity, bool> > pk = d => d.ItemId == itemId; if (!string.IsNullOrEmpty(keyword)) { Expression <Func <DataItemDetailEntity, bool> > pc = null; #region 多条件查询 switch (condition) { case "ItemName": //项目名 pc = d => d.ItemName.Contains(keyword); break; case "ItemValue": //项目值 pc = d => d.ItemValue.Contains(keyword); break; case "SimpleSpelling": //拼音 pc = d => d.SimpleSpelling.Contains(keyword); break; default: break; } #endregion pk.And(pc); } var query = _repository.QueryPage(pk, page: request.PageIndex, pageSize: request.RecordsCount); var dtos = CrudDtoMapper.MapEntityToDtos(query); JqGridResponse response = new JqGridResponse() { TotalPagesCount = query.TotalPages, PageIndex = request.PageIndex, TotalRecordsCount = query.TotalCount, }; foreach (DataItemDetailViewModel userInput in dtos) { response.Records.Add(new JqGridRecord(Convert.ToString(userInput.Id), userInput)); } response.Reader.RepeatItems = false; return(new JqGridJsonResult(response)); }
private IQueryable <Character> FilterCharacters(IQueryable <Character> charactersQueryable, JqGridRequest request) { Func <Character, bool> filterPredicate = null; if (request.Searching) { if (request.SearchingFilter != null) { filterPredicate = GetCharacterSearchingFilterPredicate(request.SearchingFilter); } else if (request.SearchingFilters != null) { filterPredicate = GetCharacterSearchingFiltersPredicate(request.SearchingFilters); } } return((filterPredicate == null) ? charactersQueryable : charactersQueryable.Where(character => filterPredicate(character))); }
private static StringBuilder GetSearchExpression(JqGridRequest jqGridRequest) { const string strPredicateFormatBeginsWith = "{0}.ToString().StartsWith(\"{1}\")"; const string strPredicateFormatContains = "{0} != null && {0}.ToString() != \"\" && {0}.ToString().ToLower().Contains(\"{1}\".ToLowerInvariant())"; const string strPredicateFormatEqual = "{0}.ToString() = \"{1}\""; const string strPredicateFormatEqualForChar = "{0}.ToString() = {1}.ToString()"; const string strPredicateFormatDateGreaterOrEqual = "{0} >= DateTime.Parse(\"{1}\")"; const string strPredicateFormatDateGreaterThan = "{0} > DateTime.Parse(\"{1}\")"; const string strPredicateFormatDateLessThan = "{0} <= DateTime.Parse(\"{1}\")"; const string strPredicateFormatDateEquals = "{0}.Date = DateTime.Parse(\"{1}\")"; const string strPredicateFormatNullIntEquals = "{0}.HasValue && {0}.Value.ToString() = \"{1}\""; const string strPredicateFormatNumberEquals = "{0} = Decimal.Parse(\"{1}\")"; const string strPredicateFormatNumberGreaterThan = "{0} >= Decimal.Parse(\"{1}\")"; const string strPredicateFormatNumberGreaterOrEqualThan = "{0} >= Decimal.Parse(\"{1}\")"; const string strPredicateFormatNumberLessThan = "{0} <= Decimal.Parse(\"{1}\")"; var searchExpression = new System.Text.StringBuilder(); string groupOperation = String.Empty; foreach (JqGridFilterRule item in jqGridRequest.filters.rules) { if (string.IsNullOrEmpty(item.data) == false) { item.data = item.data.Trim(); } if (item.op == "bw") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatBeginsWith, item.field, item.data); } else if (item.op == "eq") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatEqual, item.field, item.data); } else if (item.op == "cn") { searchExpression.Append(groupOperation); if (item.data.Contains("\"")) { searchExpression.AppendFormat(strPredicateFormatContains, item.field, item.data.Replace("\"", "\"\"")); } else { searchExpression.AppendFormat(strPredicateFormatContains, item.field, item.data); } } else if (item.op == "dgt") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatDateGreaterThan, item.field, item.data); } else if (item.op == "dge") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatDateGreaterOrEqual, item.field, item.data); } else if (item.op == "dlt") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatDateLessThan, item.field, item.data); } else if (item.op == "deq") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatDateEquals, item.field, item.data); } else if (item.op == "gt") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatNumberGreaterThan, item.field, item.data); } else if (item.op == "ge") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatNumberGreaterOrEqualThan, item.field, item.data); } else if (item.op == "lt") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatNumberLessThan, item.field, item.data); } else if (item.op == "chr" && item.data != "-1") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatEqualForChar, item.field, item.data); } else if (item.op == "neq" && item.data != "-1") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatNullIntEquals, item.field, item.data); } else if (item.op == "dec" && item.data != "-1") { searchExpression.Append(groupOperation); searchExpression.AppendFormat(strPredicateFormatNumberEquals, item.field, item.data); } groupOperation = String.Format(" {0} ", jqGridRequest.filters.groupOp); } return(searchExpression); }
public ActionResult List(JqGridRequest request) { var model = this.Manager.GetUsersGridModel(request); return(model); }
public JqGridSearch(JqGridRequest request, NameValueCollection form, DateTimeType dateTimeType) { _request = request; _form = form; _dateTimeType = dateTimeType; }
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { if (controllerContext == null) { throw new ArgumentNullException("controllerContext"); } if (bindingContext == null) { throw new ArgumentNullException("bindingContext"); } JqGridRequest model = new JqGridRequest(); model.Searching = false; if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.Searching)) { ValueProviderResult searchingResult = bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.Searching); if (searchingResult != null) { model.Searching = (bool)searchingResult.ConvertTo(typeof(Boolean)); } } model.SearchingFilter = null; model.SearchingFilters = null; if (model.Searching) { ValueProviderResult searchingFiltersResult = bindingContext.ValueProvider.GetValue("filters"); if (searchingFiltersResult != null && !String.IsNullOrWhiteSpace(searchingFiltersResult.AttemptedValue)) { JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.RegisterConverters(new JavaScriptConverter[] { new Lib.Web.Mvc.JQuery.JqGrid.Serialization.JqGridScriptConverter() }); model.SearchingFilters = serializer.Deserialize <JqGridRequestSearchingFilters>((string)searchingFiltersResult.ConvertTo(typeof(String))); } else { string searchingName = String.Empty; ValueProviderResult searchingNameResult = bindingContext.ValueProvider.GetValue("searchField"); if (searchingNameResult != null) { searchingName = (string)searchingNameResult.ConvertTo(typeof(String)); } string searchingValue = String.Empty; ValueProviderResult searchingValueResult = bindingContext.ValueProvider.GetValue("searchString"); if (searchingValueResult != null) { searchingValue = (string)searchingValueResult.ConvertTo(typeof(String)); } JqGridSearchOperators searchingOperator = JqGridSearchOperators.Eq; ValueProviderResult searchingOperatorResult = bindingContext.ValueProvider.GetValue("searchOper"); if (searchingOperatorResult != null) { Enum.TryParse <JqGridSearchOperators>((string)searchingOperatorResult.ConvertTo(typeof(String)), true, out searchingOperator); } if (!String.IsNullOrWhiteSpace(searchingName) && (!String.IsNullOrWhiteSpace(searchingValue) || ((searchingOperator & JqGridSearchOperators.NullOperators) != 0))) { model.SearchingFilter = new JqGridRequestSearchingFilter() { SearchingName = searchingName, SearchingOperator = searchingOperator, SearchingValue = searchingValue } } ; } } if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.SortingName)) { ValueProviderResult sortingName = bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.SortingName); if (sortingName != null && !String.IsNullOrWhiteSpace(sortingName.AttemptedValue)) { model.SortingName = (string)sortingName.ConvertTo(typeof(String)); } } if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.SortingOrder)) { ValueProviderResult sortingOrder = bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.SortingOrder); if (sortingOrder != null && !String.IsNullOrWhiteSpace(sortingOrder.AttemptedValue)) { model.SortingOrder = (JqGridSortingOrders)sortingOrder.ConvertTo(typeof(JqGridSortingOrders)); } } if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.PageIndex)) { model.PageIndex = (int)bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.PageIndex).ConvertTo(typeof(Int32)) - 1; } else { model.PageIndex = 0; } model.PagesCount = null; if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.PagesCount)) { ValueProviderResult pagesCountValueResult = bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.PagesCount); if (pagesCountValueResult != null) { model.PagesCount = (int)pagesCountValueResult.ConvertTo(typeof(Int32)); } } if (!String.IsNullOrWhiteSpace(JqGridRequest.ParameterNames.RecordsCount)) { model.RecordsCount = (int)bindingContext.ValueProvider.GetValue(JqGridRequest.ParameterNames.RecordsCount).ConvertTo(typeof(Int32)); } return(model); } }