public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (string.IsNullOrEmpty(ViewName))
            {
                this.ViewName = context.RouteData.GetRequiredString("action");
            }

            ViewEngineResult result = null;

            if (View == null)
            {
                View = FindView(context).View;
            }

            using (StringWriter output = new StringWriter())
            {
                ViewData["_isGriddlySettingsRequest"] = true;

                ViewContext viewContext = new ViewContext(context, View, ViewData, TempData, output);

                View.Render(viewContext, output);

                Settings = ViewData["settings"] as GriddlySettings;
            }

            if (result != null)
            {
                result.ViewEngine.ReleaseView(context, View);
            }
        }
        public override HtmlString RenderCell(object row, GriddlySettings settings, bool encode = true)
        {
            TagBuilder input = new TagBuilder("input");

            input.Attributes["name"] = "_rowselect";
            input.Attributes["type"] = "checkbox";

            if (settings.RowIds.Any())
            {
                bool   valueSet = false;
                string key      = "";
                foreach (var x in settings.RowIds)
                {
                    string val    = "";
                    object result = x.Value(row);
                    if (result != null)
                    {
                        val = result.ToString();
                    }

                    input.Attributes["data-" + x.Key] = val;
                    key += "_" + val;

                    if (!valueSet)
                    {
                        input.Attributes["value"] = val;
                        valueSet = true;
                    }
                }

                input.Attributes["data-rowkey"] = key;
            }

            return(new HtmlString(input.ToString(TagRenderMode.SelfClosing)));
        }
示例#3
0
 public GriddlyCsvResult(IEnumerable <T> data, GriddlySettings settings, string name, GriddlyExportFormat format = GriddlyExportFormat.Csv)
 {
     _data     = data;
     _settings = settings;
     _name     = name;
     _format   = format;
 }
        public override void PopulateSummaryValues(GriddlySettings <T> settings)
        {
            List <GriddlyColumn> summaryColumns = settings.Columns.Where(x => x.SummaryFunction != null).ToList();

            if (summaryColumns.Any())
            {
                StringBuilder aggregateExpression = new StringBuilder();

                aggregateExpression.Append("SELECT ");

                for (int i = 0; i < summaryColumns.Count; i++)
                {
                    if (i > 0)
                    {
                        aggregateExpression.Append(", ");
                    }

                    GriddlyColumn col = summaryColumns[i];

                    aggregateExpression.AppendFormat("{0}({1}) AS _a{2}", col.SummaryFunction, col.ExpressionString, i);
                }

                string sql = string.Format(_outerSqlTemplate,
                                           string.Format("{0} FROM ({1}) [_proj]", aggregateExpression.ToString(), _sql));

                try
                {
                    IDbConnection  cn = _getConnection();
                    IDbTransaction tx = _getTransaction != null?_getTransaction() : null;

                    IDictionary <string, object> item = cn.Query(sql, _param, tx).Single();

                    for (int i = 0; i < summaryColumns.Count; i++)
                    {
                        summaryColumns[i].SummaryValue = item["_a" + i];
                    }
                }
                catch (Exception ex)
                {
                    throw new DapperGriddlyException("Error populating summary values.", sql, _param, ex);
                }
            }
        }
示例#5
0
        public static MvcHtmlString Griddly(this HtmlHelper htmlHelper, GriddlyResultPage model, GriddlySettings settings, bool isSimpleGriddly = false)
        {
            if (htmlHelper.ViewData["_isGriddlySettingsRequest"] as bool? != true)
            {
                ViewDataDictionary viewData = new ViewDataDictionary(htmlHelper.ViewData);

                viewData.Model = model;

                viewData["settings"]        = settings;
                viewData["isSimpleGriddly"] = isSimpleGriddly;

                return(htmlHelper.Partial("~/Views/Shared/Griddly/Griddly.cshtml", viewData));
            }
            else
            {
                htmlHelper.ViewContext.ViewData["settings"] = settings;

                return(null);
            }
        }
示例#6
0
 public abstract HtmlString RenderCell(object row, GriddlySettings settings, bool encode = true);
示例#7
0
 public static MvcHtmlString SimpleGriddly <T>(this HtmlHelper htmlHelper, GriddlySettings <T> settings, IEnumerable <T> data)
 {
     return(htmlHelper.Griddly(new GriddlyResultPage <T>(data), settings, true));
 }
示例#8
0
 public static MvcHtmlString Griddly(this HtmlHelper htmlHelper, GriddlySettings settings)
 {
     return(htmlHelper.Griddly((GriddlyResultPage)htmlHelper.ViewData.Model, settings));
 }
示例#9
0
 public GriddlyExcelResult(IEnumerable <T> data, GriddlySettings settings, string name)
 {
     _data     = data;
     _settings = settings;
     _name     = name;
 }