Press Ctrl / CMD + C to copy this to your clipboard.
This post will be reported to the moderators as potential spam to be looked at
Hi everyone,
The Bootstrap Grid renderers don't do what I need, so I've written one of my own.
I call it as follows:
@Html.GetGridHtml(Model.Content, "content", "myGridRenderer")
This is all working the way I want. However, I'd also like to pass in some additional arguments. There isn't a GetGridHtml overload that supports additional arguments, so I'm left wondering how best to pass them.
Any suggestions?
Thanks
Pete
In the end, I extended the HtmlHelper in the same way as Core does. The gridrendering code now has access to a GridContext as well as the Grid itself.
public class GridContext<T> { public IPublishedContent ContentItem { get; set; } public string PropertyAlias { get; set; } public string Framework { get; set; } public T Args { get; set; } public GridContext(IPublishedContent contentItem, string propertyAlias, string framework, T args) { ContentItem = contentItem; PropertyAlias = propertyAlias; Framework = framework; Args = args; } } public class GridModel<T> { public GridContext<T> Context { get; set; } public object Grid { get; set; } public GridModel(GridContext<T> context, object grid) { Context = context; Grid = grid; } } public static class GridTemplateExtensions { public static MvcHtmlString GetGridHtml<T>(this HtmlHelper html, IPublishedContent contentItem, string propertyAlias, string framework, T args) { Mandate.ParameterNotNullOrEmpty(propertyAlias, "propertyAlias"); var gridModel = new GridModel<T>(new GridContext<T>(contentItem, propertyAlias, framework, args), null); var view = "Grid/" + framework; var prop = contentItem.GetProperty(propertyAlias); if (prop == null) throw new NullReferenceException("No property type found with alias " + propertyAlias); gridModel.Grid = prop.Value; var asString = gridModel.Grid as string; if (asString != null && string.IsNullOrEmpty(asString)) return new MvcHtmlString(string.Empty); return html.Partial(view, gridModel); } }
is working on a reply...
This forum is in read-only mode while we transition to the new forum.
You can continue this topic on the new forum by tapping the "Continue discussion" link below.
Continue discussion
How to pass data to Grid rendering code
Hi everyone,
The Bootstrap Grid renderers don't do what I need, so I've written one of my own.
I call it as follows:
@Html.GetGridHtml(Model.Content, "content", "myGridRenderer")
This is all working the way I want. However, I'd also like to pass in some additional arguments. There isn't a GetGridHtml overload that supports additional arguments, so I'm left wondering how best to pass them.
Any suggestions?
Thanks
Pete
In the end, I extended the HtmlHelper in the same way as Core does. The gridrendering code now has access to a GridContext as well as the Grid itself.
is working on a reply...
This forum is in read-only mode while we transition to the new forum.
You can continue this topic on the new forum by tapping the "Continue discussion" link below.