2011-05-10 96 views
0

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

由于

回答

0

在从teleriks例如: http://demos.telerik.com/aspnet-mvc/grid/hierarchyserverside 主(父)网格是模型 这然后在detailsView.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”中完成,因此没有特定的绑定需要担心这种关系nship是已经传入视图的模型的一部分。

的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

确保您尽量得到完整的演示工作,而不仅仅是一部分 - 那么你可以替换用你的一块代码块。