Основная информация Telerik MVC Grid

#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

убедитесь, что вы пытаетесь заставить работать полную демонстрационную версию, а не только часть — тогда вы можете заменять код по частям своим.