Asp.net mvc 3 ASP.NET MVC 3 WebGrid控件是否支持分层数据?

Asp.net mvc 3 ASP.NET MVC 3 WebGrid控件是否支持分层数据?,asp.net-mvc-3,hierarchical-data,webgrid,Asp.net Mvc 3,Hierarchical Data,Webgrid,我正在修改现有的ASP.NET MVC 3 WebGrid以显示更多数据。它当前显示一级数据,但我需要在网格中显示父子关系。这是可能的,还是我必须寻找第三方控件,或者自己使用?如果您想让webgrid自己做这件事,那么答案是否定的,因为它不可能直接实现。简单的嵌套网格,您可以实现如下 要将整个网格放在另一个网格中,可以使用jQuery、AJAX和多视图来实现这一点。在展开任何行时,使用ajax调用另一个操作,该操作将呈现子网格而不是任何其他html。使用生成的html在父网格表中插入新行。这句话

我正在修改现有的ASP.NET MVC 3 WebGrid以显示更多数据。它当前显示一级数据,但我需要在网格中显示父子关系。这是可能的,还是我必须寻找第三方控件,或者自己使用?

如果您想让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);
             }
         },
    });
$.ajax({
url:childGridUrlString,
键入:“post”,
async:true,
超时时间:10*1000,
成功:函数(数据、文本状态、jqXHR){
如果(!data.Status){
var$tr=$obj.closest(“tr”、$(“#parentgrid”);
变量$newTr=“”+数据+”;
$(“”+数据+“”)。插入($tr);
}
},
});
根据父网格和子网格中的列数来处理colspans。重要的是,WebGrid的内置排序功能不能与这种父子网格显示一起正常工作

当然,第三方控件总是一种选择,但是你也必须考虑成本,甚至他们也会有一些代码要做。