Boîte de dialogue d'édition personnalisée jqGrid
Je suis en train de travailler à une application qui utilise jqGrid. Le problème est que la boîte de dialogue d'édition qui doit apparaître à la ligne modifier doit avoir une mise en page spécifique. Donc je préfère le charger via ajax et ensuite envoyer les données jqGrid manuellement. J'ai beaucoup cherché sur les forums mais je ne pouvais pas trouver un exemple de comment le faire.
Donc, j'ai juste besoin de jqGrid pour remplir la boîte de dialogue d'édition de pop-up avec le contenu personnalisé à partir d'un script PHP.
Mise à JOUR: L'idée, c'est que j'ai un générateur de formulaire, où l'utilisateur définit la position/largeur/hauteur/visibilité de l'édition des champs... et ce doit être utilisé dans la boîte de dialogue d'édition.
source d'informationauteur Andrei
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
editfunc
ouaddfunc
option de la navGrid. Si, par exemple,editfunc
sont définis alors au lieu de editGridRow jqGrid sera appeléeditfunc
avec l'id de la ligne sélectionnée en tant que paramètre.Alternative, vous pouvez utiliser bouton personnalisé (voir cette réponse à titre d'exemple).
Pour modifier des données dans la table après ther personnalisé de la boîte de dialogue d'édition, vous pouvez utiliser setRowData fonction.
Mis à JOUR: Si vous avez juste besoin de faire quelques modifications de mise en page de la boîte de dialogue d'édition, vous pouvez utiliser beforeShowForm pour th modifications.
Vous pouvez le vérifier Tutorielqui est la démo officielle du site web de jqGrid Plugin. Je suis sûr qu'il y a des exemples de "Ligne d'Édition" dans cette catégorie. Vous pouvez voir beaucoup d'autres exemples de jqGrid aussi, dans ce site de démonstration.
Vous pouvez également vérifier le Page d'accueil.
Si vous avez plus de problèmes, vous pouvez la poser ici. J'ai utilisé certains de ces exemples dans l'un de mes client (confidentiel) site web, de sorte qu'il sera facile à manipuler en fonction de vos besoins.
Espère que cela aide.
Ma boite de dialogue d'édition avait trop de champs, et il est devenu trop élevéj'ai donc dû mettre les champs côte à côte dans les 2 colonnes. Je l'ai fait comme suit:
J'ai essayé de différentes manières, à l'aide de wrap(), etc, mais a constaté que les valeurs ne sont pas publiées sur le serveur si vous modifiez la structure originale de la table. Je viens donc cloné le tr éléments, les mettre dans de nouvelles tables, et se cacha les anciens. Je n'ai pas masquer l'ensemble de la table, de sorte que la validation sera toujours visible. J'ai mis un onchange sur la cloné éléments à mettre à jour les anciennes. Cela fonctionne très bien. Paramètre nom de la table est votre jqgrid id de l'élément.
Appeler ce code dans votre editOptions comme suit: