asp.net MVC - 如何做主/详细页面

时间:2009-02-06 20:42:06

标签: asp.net-mvc

我希望创建一个主/详细页面。我认为它有以下两种方式之一:

  • 通过添加详细信息面板,单击网格中的行再次调用同一页面。
  • 单击一行会对控制器操作执行javascript / JSON调用,该操作返回详细信息并填充面板。

我希望突出显示所选行。所选行可以是分页网格中的几个页面。

听起来很简单。不幸的是我是asp.net MVC的新手,而且我不是一个经验丰富的程序员。但是,我可以遵循并调整示例。我会很感激上述两种方法的例子来帮助我学习MVC。

提前致谢。

1 个答案:

答案 0 :(得分:4)

回答我自己的问题:

我最终使用了PartialViews和jQuery。

单击对某行的选择链接会导致在所选行之下添加一个新行(使用jQuery)。在这一行中我使用jQuery来GET / PurchaseOrder / Detail(一个PartialView)。

这是我的Javascript:

function GetDetails(id, enableEdit) {

        var detailsRowExists = $().find("#detailsRow").size();

        if (detailsRowExists) {
            // Delete details row
            // Note: need to rename id for row to be deleted
            // because jQuery does not wait for the row to be
            // deleted before adding the new row.
            $("#detailsRow").attr("id", "detailsRowOld");
            $("#detail").slideUp("normal", function() {
                $("#detailsRowOld").remove();
            });
        };


        // Put new row below selected one
        $("tr[id=" + id + "]").after("<tr id='detailsRow'><td colspan='4'><div id='detail'><img src='../../Content/wait20trans.gif' />Loading...</div></td></tr>");

        // Pull details into new row
        $.get("/PurchaseOrder/Detail/" + id, { enableEdit: enableEdit },
            function(data) {
                $("#detail").hide();
                $("#detail").html(data);
                $("#detail").slideDown("normal");
            }
        );

    }

希望这可以帮助其他人尝试获得主页/详细信息页面。