2009-02-06 11 views
3

Je souhaite créer une page principale/détaillée. Je vois cela fonctionner de l'une des deux façons:asp.net MVC - Comment faire une page principale/détaillée

  • En cliquant sur une ligne dans une grille appelle à nouveau la même page avec l'ajout d'un panneau de détails.
  • En cliquant sur une ligne, vous appelez javascript/JSON à une action du contrôleur qui renvoie des détails et remplit un panneau.

J'aimerais que la ligne sélectionnée soit mise en surbrillance. La ligne sélectionnée peut comporter plusieurs pages dans une grille paginée.

Sons faciles. Malheureusement, je suis nouveau sur asp.net MVC, et je ne suis pas un programmeur expérimenté. Cependant, je peux suivre et adapter des exemples. J'apprécierais des exemples des deux méthodes ci-dessus pour m'aider à apprendre MVC.

Merci d'avance.

Répondre

4

Pour répondre à ma propre question:

Je fini par utiliser PartialViews et jQuery.

En cliquant sur un lien de sélection sur une ligne, une nouvelle ligne est ajoutée en dessous de celle sélectionnée (en utilisant jQuery). Dans cette ligne j'utilise jQuery pour GET/PurchaseOrder/Detail (une vue partielle).

Voici mon 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"); 
      } 
     ); 

    } 

Espérons que cela mai aide les autres à essayer d'obtenir un maître/page de détails.

Questions connexes