#ajax #model-view-controller #grid #telerik #custom-binding
#ajax #model-view-controller #сетка #telerik #пользовательская привязка
Вопрос:
У меня есть следующая разметка.
@(Html.Telerik().Grid(Model)
.Name("Grid")
.DataKeys(keys => keys.Add(key => key.Id))
.Columns(columns =>
{
columns.Bound(c => c.FullNameWithEmail).ClientTemplate("<#= FullNameWithEmail #>").Title("Name and Email").Width(230);
columns.Bound(c => c.Notes);
})
.ClientEvents(events => events.OnRowDataBound("grid_onRowDataBound"))
.DetailView(checkInAppGridDetails => checkInAppGridDetails.ClientTemplate("<# if (RelatedCount > 0) { #>"
Html.Telerik().Grid<ViewModel>()
.Name("GridDetails_<#= Id #>")
.Footer(false)
.Columns(columns =>
{
columns.Bound(c => c.FullNameWithEmail).ClientTemplate("<#= FullNameWithEmail #>").Title("Name and Email").Width(225);
columns.Bound(c => c.Notes);
columns.Bound(c => c.Actions).ClientTemplate("<#= Actions #>").Width(150);
})
.ClientEvents(events => events.OnRowDataBound("GridDetails_onRowDataBound"))
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("GetRelated", "Controller", new
{
id = @ViewBag.EventKey,
ticketId = "<#= Id #>"
}))
.ToHtmlString()
"<# } #>"
))
)
Здесь у меня есть то, что я связываю основную сетку с помощью Ajax-вызова, и как только строки привязаны, представление сведений привязывается к ajax-вызову привязки данных.
У меня уже есть в модели коллекция для связанных записей, которые я хотел показать в детализации, мне не нужен дополнительный вызов на сервер.
вот пример ViewModel
public class ViewModel
{
public string FirstProperty {get; set;}
.
.
.
public IEnumurable<ViewModel> RelatedRecords { get; set; }
}
Есть идеи, как связать всю сетку с детализацией только одним Ajax-запросом?
Ответ №1:
Просто использовал пример поддержки telerik, чтобы исправить это, и это сработало очень хорошо.Сообщение Telerik