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 these situations the MVC Razor helper function can be used.
Create the helper function with the grid control definition, in this case RenderGrid()
.
@helper RenderGrid()
{
@(Html.Telerik().Grid<AjaxImages>()
.Name("Grid")
.DataKeys(keys => keys.Add(c => c.ID))
.Columns(columns =>
{
columns.Template(
@<text>
<img src='@item.Url' />
</text>
).Title("Picture");
})
.DataBinding(dataBinding => dataBinding.Ajax().Select("GetImages", "UserProducts"))
}
Call the helper function inside the window's content definition. The helper functions can be called multiple times if needed.
@{Html.Telerik().Window()
.Name("images")
.Title("Select an Image")
.Content(
@<text>
@RenderGrid()
</text>)
.Width(400)
.Draggable(true)
.Modal(true)
.Visible(false)
.Render();
}
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With