2011-08-26 81 views
0

我正在修改现有的ASP.NET MVC 3 WebGrid以显示更多数据。它目前显示一个级别的数据,但我需要在网格中显示父子关系。这是可能的,还是我将不得不寻找第三方控制,或者推出我自己的?ASP.NET MVC 3 WebGrid控件是否支持分层数据?

回答

1

如果你想webgrid自己做,那么答案是不可能的直接。简单的嵌套网格,你可以实现这样的... Razor Nested WebGrid

要在整个网格内另一个网格,你可以使用jQuery,AJAX多个视图来实现这一点。在任何行的扩展调用另一个动作与AJAX将呈现子网格,而不是任何其他的HTML。使用生成的html插入父网格表中的新行。这些线上的东西...

 $.ajax({ 
     url: childGridUrlString, 
     type: 'post', 
     async: true, 
     timeout: 10 * 1000, 
     success: function (data, textStatus, jqXHR) { 
      if (!data.Status) { 
       var $tr = $obj.closest("tr", $("#parentgrid")); 
       var $newTr = "<tr><td colspan=\"4\">" + data + "</td></tr>"; 
       $("<tr><td>&nbsp;</td><td colspan=\"3\">" + data + "</td></tr>").insertAfter($tr); 
      } 
     }, 
    }); 

照顾你在父母和子网格中的列数。重要的是,在WebGrid的内置排序功能中,对于此类父级子网格显示无法正常工作。

当然,第三方控制始终是一种选择,但您必须考虑成本,甚至他们也会有一些编码要做。