0

我正在调整现有的 ASP.NET MVC 3 WebGrid 以显示更多数据。它目前显示一级数据,但我需要在网格中显示父子关系。这可能吗,还是我必须研究第三方控件,还是自己动手?

4

1 回答 1

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);
             }
         },
    });

根据父网格和子网格中的列数来处理 colspan。重要的是,WebGrid 的内置排序功能不适用于这种类型的父子网格显示。

当然,第三方控件始终是一种选择,但您还必须考虑成本,甚至他们也需要进行一些编码。

于 2011-09-06T06:19:11.337 回答