asp.net MVC - Как сделать основную/подробную страницу

Я хочу создать главную/детальную страницу. Я вижу, что это работает одним из двух способов:

  • Щелчок строки в сетке снова вызывает ту же страницу с добавлением панели сведений.
  • Щелчок по строке вызывает вызов javascript/JSON действия контроллера, которое возвращает сведения и заполняет панель.

Я хотел бы, чтобы выбранная строка была выделена. Выбранная строка может состоять из нескольких страниц в постраничной сетке.

Звучит легко. К сожалению, я новичок в asp.net MVC и не являюсь опытным программистом. Тем не менее, я могу следовать и адаптировать примеры. Я был бы признателен за примеры обоих вышеперечисленных методов, которые помогут мне изучить MVC.

Заранее спасибо.


person Alan T    schedule 06.02.2009    source источник


Ответы (1)


Чтобы ответить на мой собственный вопрос:

В итоге я использовал 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");
            }
        );

    }

Надеюсь, это может помочь другим, пытающимся получить страницу master/details.

person Alan T    schedule 06.03.2009