/// <summary> /// Processa a fonte de dados. /// </summary> private void ProcessDataSource() { var binder = new DataSourceRequestModelBinder(); var controller = ViewContext.Controller; var bindingContext = new ModelBindingContext() { ValueProvider = controller.ValueProvider }; var request = (DataSourceRequest)binder.BindModel(controller.ControllerContext, bindingContext); DataSource.Process(request, false); }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { // Get an instance of the original kendo model binder and call the binding method var baseBinder = new DataSourceRequestModelBinder(); var request = (Kendo.Mvc.UI.DataSourceRequest)baseBinder.BindModel(controllerContext, bindingContext); if (request.Filters != null && request.Filters.Count > 0) { var transformedFilters = request.Filters.Select(TransformFilterDescriptors).ToList(); request.Filters = transformedFilters; } return(request); }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { DataSourceRequestModelBinder originalBinder = new DataSourceRequestModelBinder(); DataSourceRequest originalRequest = (DataSourceRequest)originalBinder.BindModel(controllerContext, bindingContext); CustomDataSourceRequest request = new CustomDataSourceRequest() { Aggregates = originalRequest.Aggregates, Filters = originalRequest.Filters, Groups = originalRequest.Groups, PageSize = originalRequest.PageSize, Page = originalRequest.Page, Sorts = originalRequest.Sorts }; string tableName; string parentFieldName; string parentFieldValue; if (TryGetValue(bindingContext, "tableName", out tableName)) { request.TableName = tableName; } if (TryGetValue(bindingContext, "parentFieldName", out parentFieldName)) { request.ParentFieldName = parentFieldName; } if (TryGetValue(bindingContext, "parentFieldValue", out parentFieldValue)) { request.ParentFieldValue = parentFieldValue; } return(request); }