Maison >développement back-end >C++ >Comment formater correctement les réponses déroulantes jqGrid à partir des appels ASP.NET MVC $.post ?
Formatage des données des listes déroulantes ASP.NET MVC et jqGrid : résolution du problème d'appel $.post
Dans ASP.NET MVC, vous pouvez remplir dynamiquement la liste déroulante des données de modification de jqGrid. Cependant, vous pouvez rencontrer des problèmes avec des valeurs « non définies » apparaissant dans les listes déroulantes. Cela peut être dû au formatage des données de jqGrid.
Aperçu du problème
Lors d'un appel $.post à l'aide de jQuery, les données reçues du contrôleur peuvent contenir des guillemets doubles. Cela pose des problèmes avec jqGrid car il s'attend à ce que la valeur de la liste déroulante soit au format "value:value;...".
Solution : utilisez ContentResult
Pour résoudre ce problème, utilisez la méthode ContentResult au lieu de Json. La syntaxe de ContentResult est la suivante :
<code class="language-csharp">return Content(sb.ToString());</code>
Alternative : utilisez dataUrl et buildSelect
Une autre option consiste à utiliser les attributs dataUrl et buildSelect dans les options d'édition ou de recherche de jqGrid. À l'aide de dataUrl, vous fournissez une URL qui renvoie les données au format requis par l'élément select de jqGrid. buildSelect est une fonction personnalisée qui reçoit des données et renvoie le HTML de l'élément select.
Exemple de code
Voici un exemple d'utilisation de dataUrl et buildSelect :
Opérations du contrôleur :
<code class="language-csharp">public JsonResult GetDestinationList() { List<string> allDestinations = GetAllDestinations(); return Json(allDestinations, JsonRequestBehavior.AllowGet); }</code>
Options jqGrid :
<code class="language-javascript">{ name: 'destinations', editable: true, edittype:'select', editoptions: { dataUrl: '/YourController/GetDestinationList', buildSelect: function(data){ var s = '<select>'; if (data && data.length) { for (var i = 0, l=data.length; i<l ; i++) { var ri = data[i]; s += '<option value="' + ri + '">' + ri + '</option>'; } } s += '</select>'; return s; }} }</code>
Résumé
Vous pouvez fournir le format de données correct pour les valeurs déroulantes jqGrid à partir des appels $.post dans ASP.NET MVC en utilisant la méthode ContentResult ou les propriétés dataUrl et buildSelect.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!