Ejemplo n.º 1
0
        internal static string GenerateGrid(string gridName, out int statusCode, NameValueCollection nameValueCollection = null)
        {
            if (nameValueCollection == null)
            {
                nameValueCollection = new NameValueCollection();
            }

            statusCode = 200;
            IMVCGridDefinition grid        = MVCGridDefinitionTable.GetDefinitionInterface(gridName);
            QueryOptions       options     = QueryStringParser.ParseOptions(grid, nameValueCollection);
            GridContext        gridContext = MVCGrid.NetCore.Utility.GridContextUtility.Create(/*context, */ gridName, grid, options);

            GridEngine engine = new GridEngine();

            if (!engine.CheckAuthorization(gridContext))
            {
                //Forbidden
                statusCode = 403;
                return(string.Empty);
            }

            IMVCGridRenderingEngine renderingEngine = GridEngine.GetRenderingEngine(gridContext);

            // TODO: Reimplement this for csv exports and other rendering responses.
            //renderingEngine.PrepareResponse(context.Response);

            StringBuilder sb         = new StringBuilder();
            TextWriter    htmlWriter = new StringWriter(sb);

            engine.Run(renderingEngine, gridContext, htmlWriter);
            string html = sb.ToString();

            return(html);
        }
Ejemplo n.º 2
0
        private static string RenderPreloadedGridHtml(HtmlHelper helper, IMVCGridDefinition grid, string gridName, object pageParameters)
        {
            string preload = "";

            var options = QueryStringParser.ParseOptions(grid, System.Web.HttpContext.Current.Request);

            // 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 Models.RenderingMode.RenderingEngine:
                preload = RenderUsingRenderingEngine(engine, gridContext);
                break;

            case Models.RenderingMode.Controller:
                preload = RenderUsingController(engine, gridContext, helper);
                break;

            default:
                throw new InvalidOperationException();
            }
            return(preload);
        }