private static string RenderPreloadedGridHtml(IMVCGridDefinition grid, string gridName, object pageParameters) { string preload = string.Empty; var options = QueryStringParser.ParseOptions(grid, HttpHelper.HttpContext.Request.ToNameValueCollection()); // set the page parameters for the preloaded grid Dictionary <string, string> pageParamsDict = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); if (pageParameters != null) { foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(pageParameters)) { object obj2 = descriptor.GetValue(pageParameters); pageParamsDict.Add(descriptor.Name, obj2.ToString()); } } if (grid.PageParameterNames.Count > 0) { foreach (var aqon in grid.PageParameterNames) { string val = ""; if (pageParamsDict.ContainsKey(aqon)) { val = pageParamsDict[aqon]; } options.PageParameters[aqon] = val; } } var gridContext = GridContextUtility.Create(/*HttpContext.Current,*/ gridName, grid, options); GridEngine engine = new GridEngine(); switch (grid.RenderingMode) { case RenderingMode.RenderingEngine: preload = RenderUsingRenderingEngine(engine, gridContext); break; // TODO: Enable support for controller rendering //case Models.RenderingMode.Controller: // preload = RenderUsingController(engine, gridContext); // break; default: throw new InvalidOperationException(); } return(preload); }
private static string RenderUsingRenderingEngine(GridEngine engine, GridContext gridContext) { IMVCGridRenderingEngine renderingEngine = GetRenderingEngine(gridContext); using (MemoryStream ms = new MemoryStream()) { using (TextWriter tw = new StreamWriter(ms)) { engine.Run(renderingEngine, gridContext, tw); } string result = LocalEncoding.GetString(ms.ToArray()); return(result); } }
private static string RenderUsingController(GridEngine engine, GridContext gridContext) { return(string.Empty); //var model = engine.GenerateModel(gridContext); //var controllerContext = helper.ViewContext.Controller.ControllerContext; //ViewDataDictionary vdd = new ViewDataDictionary(model); //TempDataDictionary tdd = new TempDataDictionary(); //using (var sw = new StringWriter()) //{ // var viewResult = ViewEngines.Engines.FindPartialView(controllerContext, // gridContext.GridDefinition.ViewPath); // var viewContext = new ViewContext(controllerContext, viewResult.View, vdd, tdd, sw); // viewResult.View.Render(viewContext, sw); // viewResult.ViewEngine.ReleaseView(controllerContext, viewResult.View); // return sw.GetStringBuilder().ToString(); //} }