Extensions côté serveur Jqgrid : gestion des relations de données indirectes
Ce guide montre comment afficher des noms de ville descriptifs au lieu d'identifiants numériques dans un Jqgrid, en tirant parti des extensions côté serveur pour gérer les relations de données indirectes. L'exemple implique deux tables : Students
(SID, SNAME, CITY) et Locations
(CID, CNAME). Le défi réside dans la présentation de CNAME
(nom de la ville) dans la colonne CITY
de Jqgrid, qui stocke actuellement CID
(identifiant de la ville). Les jointures directes de bases de données ne conviennent pas en raison de la structure de données de la classe Student
.
La solution consiste à augmenter la réponse JSON du serveur pour inclure les informations de mappage nécessaires. Nous introduisons une propriété colModelOptions
pour configurer dynamiquement la colonne CITY
:
<code class="language-json">{ "colModelOptions": { "CITY": { "formatter": "select", "edittype": "select", "editoptions": { "value": "11:Chennai;13:Delhi;12:Mumbai" }, "stype": "select", "searchoptions": { "sopt": [ "eq", "ne" ], "value": ":Any;11:Chennai;13:Delhi;12:Mumbai" } } }, "rows": [ { "SID": "1", "SNAME": "ABC", "CITY": "11" }, // ... more rows ] }</code>
Cette réponse JSON fournit à Jqgrid les données nécessaires pour afficher les noms de villes. La propriété editoptions.value
définit le mappage entre les identifiants et les noms.
Le gestionnaire d'événements beforeProcessing
de Jqgrid applique dynamiquement ces options de colonne :
<code class="language-javascript">beforeProcessing: function (response) { var $self = $(this), options = response.colModelOptions, p; if (options != null) { for (p in options) { if (options.hasOwnProperty(p)) { $self.jqGrid("setColProp", p, options[p]); // ... any additional processing } } } }</code>
Ce code parcourt colModelOptions
, mettant à jour les propriétés de la colonne CITY
dans Jqgrid. Cette configuration dynamique garantit que les noms de villes sont affichés à la place des identifiants, ce qui donne lieu à une grille plus conviviale et intuitive. Cette méthode gère efficacement les relations de données indirectes sans modifier la structure de la base de données ni utiliser de recherches inefficaces côté client.
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!