J'ai jqGrid avec quelques colonnes, je veux ajouter des champs supplémentaires dans la boîte de dialogue Ajouter, qui ne s'affichent pas dans la grille, mais qui envoient une requête. Comment je peux rendre cela fonctionnel?jqGrid. ajouter un dialogue
Répondre
Vous pouvez modifier la boîte de dialogue Ajouter à l'intérieur du gestionnaire d'événements beforeShowForm. Vous pouvez voir un exemple de travail here. Cet exemple j'ai fait comme une réponse à la question "jqGrid: Disable form fields when editing" (voir aussi une question proche "How to add a simple text label in a jqGrid form?")
MISE À JOUR: Je relis votre question et je pouvais voir que je répondais à l'origine sur une autre question que vous avez demandé. Ce que vous avez besoin est juste utilisation de editData paramètre qui peut être par exemple comme
$("#list").jqGrid('navGrid','#pager',{del:false,search:false,refresh:false},
{}, // edit parameters
{ // add parameters
url: '/myAddUrl',
editData: {
someStaticParameter: "Bla Bla",
myDynamicParameter: function() {
return (new Date()).toString();
}
}
}
);
voir demo. La démo n'a rien du côté serveur, mais vous pouvez facilement vérifier avec Fiddler ou Firebug, que les données envoyées au serveur contiennent les paramètres someStaticParameter
et myDynamicParameter
.
Celui-ci est bon. Je vote celui-ci.
Cette solution s'applique à ce que je cherche. J'ai une table d'utilisateurs avec le nom d'utilisateur typique, le mot de passe, et les détails etc. J'ai aussi un bouton d'édition et d'ajout.
En ce qui concerne la sécurité, il n'est pas bon d'envoyer tous les utilisateurs avec leur mot de passe. Ainsi, dans le formulaire d'édition, un administrateur peut seulement modifier tout sauf le mot de passe.
Dans le formulaire d'ajout, un administrateur peut créer un nouveau compte avec un nouveau mot de passe. Puisque le champ de mot de passe n'existe pas dans la grille, il n'apparaîtra pas dans le formulaire d'ajout. En suivant cet exemple, je suis en mesure d'ajouter un champ personnalisé sans exposer les mots de passe de mes utilisateurs. Merci beaucoup Oleg
Je voulais répondre à votre autre question et relire cette question une fois de plus. À la première fois, ma réponse était sur la mauvaise question. J'ai mis à jour ma réponse. S'il vous plait, si vous voulez recevoir une réponse dans les réponses aux commentaires futurs de quelque manière que ce soit. Sans réponse de votre part, je ne vois aucun sens à répondre. – Oleg