Telerik MVC Grid Master Подробнее - PullRequest
0 голосов
/ 10 мая 2011

У меня есть основная сетка деталей. У меня есть ViewModel, которая заполняет родительскую сетку Telerik, просто связывая модель с сеткой. Этот шаг был достаточно прост, но я не могу заставить подсеть заполняться на основе данных в строке родительской сетки. Как это сделать с помощью модели MVC? Может кто-нибудь объяснить мне, как заставить дочернюю / вспомогательную сетку извлекать свои данные на основе значения ключа родительской строки в родительской сетке? Я не могу последовать примеру Telerik. Их решение не легко понять. Я использую привязку сервера

Спасибо

1 Ответ

0 голосов
/ 11 мая 2011

В примере teleriks из: http://demos.telerik.com/aspnet-mvc/grid/hierarchyserverside основной (родительской) сеткой является Модель. Затем она представляется как e в detailsView.Template (e =>

Html.Telerik().Grid(Model)
        .Name("Employees")
        .Columns(columns =>
        {
            columns.Bound(e => e.FirstName).Width(140);
            columns.Bound(e => e.LastName).Width(140);
            columns.Bound(e => e.Title).Width(200);
            columns.Bound(e => e.Country).Width(200);
            columns.Bound(e => e.City);
        })
        .DetailView(detailView => detailView.Template(e =>
        {
            %>
                <% Html.Telerik().Grid(e.Orders)
                       .Name("Orders_" + e.EmployeeID)
                       .Columns(columns =>
                        {
                            columns.Bound(o => o.OrderID).Width(101);
                            columns.Bound(o => o.ShipCountry).Width(140);
                            columns.Bound(o => o.ShipAddress).Width(200);
                            columns.Bound(o => o.ShipName).Width(200);
                            columns.Bound(o => o.ShippedDate).Format("{0:d}");
                        })

Представление «детали»знает, как связать с определенной строкой, потому что для каждого сотрудника здесь мы получаем заказы в подробном представлении, так что это действительно выполняется в «foreach», поэтому нет особой привязки, о которой вам нужно беспокоиться. Это отношение является частью моделиуже передан в представление.

rowaction используется для определения того, какой раздел показывать как развернутый

.RowAction(row => 
                        {
                            if (row.Index == 0)
                            {
                                row.DetailRow.Expanded = true;
                            }
                            else
                            {
                                var requestKeys = Request.QueryString.Keys.Cast();
                                var expanded = requestKeys.Any(key => key.StartsWith("OrderDetails_" +
                                    row.DataItem.EmployeeID + "_" + row.DataItem.OrderID));
                                row.DetailRow.Expanded = expanded;
                            }
                        })

Я бы посоветовал вам проверить наши документы - убедитесь, что у вас есть соответствующие скрипты, упомянутые, затем попытайтесь настроить ваш пример точно так же, как их. Ссылка на сетку не так уж и плоха - вы можете найти ее по адресу: http://www.telerik.com/help/aspnet-mvc/properties_t_telerik_web_mvc_ui_grid_1.html

. Убедитесь, что вы пытаетесь заставить работать полную демо, а не толькоpart - тогда вы можете заменить фрагмент кода на ваш.

...