private void ProcessDataSource() { if (Pageable.Enabled && DataSource.PageSize == 0) { DataSource.PageSize = 10; } var binder = new DataSourceRequestModelBinder(); if (this.PrefixUrlParameters) { binder.Prefix = Name; if (DataSource.Type == DataSourceType.Server) { DataSource.Transport.Prefix = Name + "-"; } } var controller = ViewContext.Controller; var bindingContext = new ModelBindingContext() { ValueProvider = controller.ValueProvider }; var request = (DataSourceRequest)binder.BindModel(controller.ControllerContext, bindingContext); DataSource.Process(request, !EnableCustomBinding); if (DataSource.Schema.Model.Id != null) { DataKeys.Add(DataSource.Schema.Model.Id); } }
protected override void WriteHtml(HtmlTextWriter writer) { if (!Columns.Any() && AutoGenerateColumns) { foreach (GridColumnBase <T> column in new GridColumnGenerator <T>(this).GetColumns()) { Columns.Add(column); } } var orignalClientValidationEnabled = ViewContext.ClientValidationEnabled; var originalFormContext = ViewContext.FormContext; try { ViewContext.ClientValidationEnabled = true; ViewContext.FormContext = new FormContext { FormId = Name + "form" }; if (Editable.Enabled && IsClientBinding) { InitializeEditors(); } AdjustColumnsTypesFromDynamic(); if (!HtmlAttributes.ContainsKey("id")) { HtmlAttributes["id"] = Id; } var builder = htmlBuilderFactory.CreateBuilder(Scrollable.Enabled); if (DataSource.Type != DataSourceType.Custom || DataSource.CustomType == "aspnetmvc-ajax") { ProcessDataSource(); } if (DataSource.Schema.Model.Id != null) { DataKeys.Add(DataSource.Schema.Model.Id); } var renderingData = CreateRenderingData(); var functionalData = CreateFunctionalData(); var container = builder.CreateGrid(HtmlAttributes, functionalData, renderingData); if (Editable.Mode == GridEditMode.PopUp && (CurrentItemMode == GridItemMode.Insert || CurrentItemMode == GridItemMode.Edit)) { AppendPopupEditor(container, renderingData); } container.WriteTo(writer); if (ViewContext.FormContext != null) { ValidationMetadata.Add("Fields", ProcessValidationMetadata()); ValidationMetadata.Add("FormId", ViewContext.FormContext.FormId); } } finally { ViewContext.FormContext = originalFormContext; ViewContext.ClientValidationEnabled = orignalClientValidationEnabled; } base.WriteHtml(writer); }