2009-08-25 5 views
0

Eh bien, je suis tombé sur le plugin jqGrid pour jQuery et essaye de l'incorporer dans une application ASP.NET MVC. J'ai toute la fonctionnalité de base fonctionnant grâce à divers messages de blog autour des pièges. Ce que j'essaie de m'entraîner maintenant est de savoir comment retourner des données du contrôleur de manière à remplir les options de sélection sur le formulaire d'édition.ASP.NET MVC avec jqGrid Modification de formulaire - Action du contrôleur pour les options sélectionnées

Je sais que je dois juste fournir à jqGrid une URL à appeler pour récupérer les options, mais pour la vie de moi je ne peux pas penser (peut-être trop peu de café?) Comment rendre cela du contrôleur. Par exemple, les valeurs de la liste de sélection peuvent être codées en dur comme "1: one; 2: two", ai-je juste besoin de retourner un objet json sous cette forme? Ou une chaîne?

Toute aide serait grandement appréciée.

Répondre

0

Oups ... le principal problème que j'avais été à essayer de comprendre ce type de retour à mettre sur l'action du contrôleur. En fin de compte c'était tellement simple que je ne pouvais pas voir le bois pour les arbres. J'ai fini avec une sortie de chaîne simple de l'action du contrôleur:

public string ObjectList() 
{ 
    // replace this with the code to construct your list values 
    return "1:one;2:two"; 
} 

Si simple ça fait mal à admettre je l'ai raté.

1

Afin de remplir dynamiquement une liste déroulante, il suffit de créer une variable juste au-dessus de la création de jqgrid.

var countries = $.ajax(
         {url:'/Specimens/GetAreaStrList/',async: false, 
      success: function(data, result) 
      { 
       if (!result) 
       alert('Failure to retrieve the Countries.'); 
       } 
      } 
      ).responseText; 

puis vous remplissez la grille

 {name:'AreaID', index:'AreaID', width:150, align:'left', editable:true, 
         edittype:"select",editoptions:{size: 71} } 
       ], 
     onSelectRow: function(id) 
     { 
      if(id && id !== lastsel2) 
      { 
       jQuery('#list').restoreRow(lastsel2); 
       jQuery('#list').editRow(id, true); 
       lastsel2 = id; 
      } 
     }, 
     loadComplete: function() 
     { 
     jQuery('#list').setColProp('AreaID', {editoptions: {value: countries}}); 
     }, 

et le code dans le contrôleur:

public ActionResult GetAreaStrList() { Contenu de retour ("171: Fédération de Russie; 86: Une autre Pays"); }

Je suis inspiré de ce blog: http://geekswithblogs.net/renso/archive/2009/07/02/jqgrid-dynamically-loading-select-options.aspx

Questions connexes