#asp.net-mvc #telerik #telerik-grid
#asp.net-mvc #telerik #telerik-grid
Вопрос:
У меня есть основная подробная сетка. У меня есть ViewModel, которая заполняет родительскую сетку Telerik, просто привязывая модель к сетке. Этот шаг был достаточно простым, но я не могу заставить подсеть заполняться на основе данных в строке родительской сетки. Как это делается с использованием модели mvc? Может кто-нибудь объяснить мне, как заставить дочернюю / вспомогательную сетку извлекать свои данные на основе значения ключа родительской строки в родительской сетке? Я не могу следовать примеру Telerik. Их решение нелегко понять. Я использую привязку к серверу
Спасибо
Ответ №1:
В примере teleriks из:http://demos .telerik.com/aspnet-mvc/grid/hierarchyserverside главной (родительской) сеткой является модель, которая затем представляется как e в DetailsView.Шаблон (e=>
HTML.Telerik().Grid(Model) .Имя("Сотрудники") .Столбцы(columns => { столбцы.Привязан (e => e.FirstName).Ширина (140); столбцы.Привязка (e => e.LastName).Ширина (140); столбцы.Привязка (e => e.Title).Ширина (200); столбцы.Привязка (e => e.Country).Ширина (200); столбцы.Граница (e => e.City); }) .Просмотр деталей (DetailView => DetailView.Шаблон (e => { %> <% Html.Telerik().Сетка (например,Заказы) .Имя ("Orders_" e.EmployeeID) .Столбцы(columns => { столбцы.Привязан (o => o.OrderID).Ширина (101); столбцы.Привязка (o => o.ShipCountry).Ширина (140); столбцы.Привязан (o => o.ShipAddress).Ширина (200); столбцы.Привязан (o => o.ShipName).Ширина (200); столбцы.Привязан (o => o.Дата отправки).Формат ("{0:d}"); })
Представление «подробности» знает, что нужно привязывать к определенной строке, потому что для каждого сотрудника здесь мы получаем заказы в детальном представлении, так что на самом деле это делается «заранее», поэтому вам не нужно беспокоиться о конкретной привязке. Эта взаимосвязь является частью модели, уже переданной в представление.
Действие rowaction используется для определения того, какой раздел отображать как расширенный
.Действие строки (строка => { если (строка.Индекс == 0) { строка.DetailRow.Expanded = true; } еще { var requestKeys = Запрос.Строка запроса.Ключи.Приведение (); расширенный параметр = requestKeys.Любой (ключ => key.Запускается с("OrderDetails_" строка.Элемент данных.EmployeeID "_" строка.Элемент данных.Идентификатор заказа)); строка.DetailRow.Expanded = расширенный; } })
Я бы посоветовал вам проверить наши ихние документы — убедитесь, что у вас есть упомянутые правильные сценарии, затем попробуйте настроить ваш пример точно так же, как у них. Ссылка на grid не так уж плоха — вы можете найти ее по адресу:http://www.telerik.com/help/aspnet-mvc/properties_t_telerik_web_mvc_ui_grid_1.html
убедитесь, что вы пытаетесь заставить работать полную демонстрационную версию, а не только часть — тогда вы можете заменять код по частям своим.