I one one modal window with telerik grid inside. But i need to render images in my grid so as i understand i cant use @ twice. Here is blog post about this issue Link
Can someone assist me please.
My Code
@{ Html.Telerik().Window()
.Name("images")
.Title("Select an Image")
.Content(@<text>
@(Html.Telerik().ComboBox()
.Name("AjaxComboBox66")
.AutoFill(true)
.SelectedIndex(0)
.BindTo(new SelectList(Model.PhotoFolders, "ID", "Name"))
.Filterable(filtering => filtering.FilterMode(AutoCompleteFilterMode.StartsWith))
.HighlightFirstMatch(true)
.ClientEvents(events => events
.OnChange("onChange")
)
)
@(Html.Telerik().Grid<AjaxImages>()
.Name("Grid")
.DataKeys(keys => keys.Add(c => c.ID))
.Columns(columns =>
{
columns.Template(
@<text>
<img src='@item.Url' />
//Here is my error. I need helper function
</text>
).Title("Picture");
})
.DataBinding(dataBinding => dataBinding.Ajax().Select("GetImages", "UserProducts"))
.Scrollable(scrolling => scrolling.Enabled(true))
.Sortable(sorting => sorting.Enabled(true))
.Pageable(paging => paging.Enabled(true).PageSize(20).Total(100).Style(GridPagerStyles.NextPreviousAndNumeric))
.Filterable(filtering => filtering.Enabled(true))
.Groupable(grouping => grouping.Enabled(false))
.EnableCustomBinding(true)
.Footer(true))
</text>)
.Width(400)
.Draggable(true)
.Modal(true)
.Visible(false)
.Render();
}
My GetImages function return me json with "ID" and "URL".
In previous MVC
@helper
was used as a workaround for inability to nest@<text>
tags. But in MVC CORE@helper
is omitted. Read more here:https://github.com/aspnet/Razor/issues/715
In these situations the MVC Razor helper function can be used. Create the helper function with the grid control definition, in this case
RenderGrid()
.Call the helper function inside the window's content definition. The helper functions can be called multiple times if needed.