Telerik MVC Grid Master详细信息

时间:2011-05-10 18:51:53

标签: asp.net-mvc telerik telerik-grid

我有一个主细节网格。 我有一个ViewModel,通过简单地将模型绑定到网格来填充Telerik父网格。 这一步很简单,但我无法根据父网格行中的数据填充子网格。如何使用mvc模型完成?有人可以向我解释如何让子/子网格根据父网格中父行的键值来提取数据吗? 我不能跟随Telerik的例子。他们的解决方案不易理解。 我正在使用服务器绑定

由于

1 个答案:

答案 0 :(得分:0)

在teleriks例子中: http://demos.telerik.com/aspnet-mvc/grid/hierarchyserverside 主(父)网格是模型 然后在detailView.Template中表示为e(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

确保您尝试让完整的演示工作,而不仅仅是部分 - 然后您可以逐个替换代码。