Comment obtenir sélectionnez la valeur dans jqGrid lors de l'utilisation de <select> editoptions sur une colonne
J'ai un couple de colonnes dans jqGrid avec edittype="select". Comment puis-je lire la valeur de l'option de la valeur actuellement sélectionnée dans une ligne particulière?
par exemple: Quand je fournir à l'option suivante, comment puis-je obtenir "FE" pour le compte de FedEx, etc.
editoption: { value: “FE:FedEx; IN:InTime; TN:TNT” }
getRowData() pour le rowId/cellname retourne uniquement le texte/l'élément affiché de la sélectionner.
Si j'ai mis un "changement" de données de l'événement sur la colonne, les feux de modifier les événements que sur les clics de souris, et pas de clavier sélectionne (il y a de nombreuses références à générique sélectionne et de la souris/clavier).
Ligne de fond, lorsqu'une nouvelle valeur est sélectionnée, j'ai besoin de savoir la valeur de l'option au moment de la modification, et aussi avant de poster sur le serveur.
OriginalL'auteur Venkat Peri | 2010-04-05
Vous devez vous connecter pour publier un commentaire.
La la documentation pour
getRowData
états:Est la ligne encore en cours d'édition lorsque vous appelez
getRowData()
?mise à Jour
Convenu, jqGrid ne gère pas
<select>
très bien. Dans mon application j'ai vraiment été en mesure de contourner ce problème en ne spécifiant pas une option d'édition (ce qui signifie, clé/valeur, étaient les deux "FedEx"); la traduction à l'IDENTIFIANT est ensuite fait sur le serveur. C'est pas la bonne manière de coder, mais cela a fonctionné assez bien pour mes besoins du moment.Ouais, je suis d'accord. Je pense que je vais revenir à la cartographie de la valeur affichée (qui est la valeur enregistrée) vers le serveur de clés secondaires. Inconvénient est que les valeurs doivent être uniques.
BTW, l'événement afterSaveCell(rowid, cellname, la valeur, la iRow, iCol) retourne le <option> valeur.
Bon à savoir. Vous êtes-vous retrouvée à l'aide de cette approche, alors?
OriginalL'auteur Justin Ethier
Vous devez définir le formateur de la colonne à 'select'
Exemple du wiki:
Voir plus ici jqgridwiki
J'ai eu le même problème et cela a fonctionné comme un charme
OriginalL'auteur Mariano Quevedo
Je viens de résoudre cette question par le paramètre à l'aide de JqGrid unformat option et utiliser la fonction suivante pour unformatting valeur de la cellule.
La méthode ci-dessus sera appelée à chaque fois que la grille de besoin de données de la cellule comme lorsque vous appelez "getRowData" la méthode. Cependant, ma fonction uniquement de support clé-jumelé valeur de l'option d'édition. Vous avez besoin de changer vos données comme sur le modèle suivant.
Pour plus d'informations sur unformat option, vous pouvez voir sur le lien suivant.
JqGrid Wiki - Mise En Forme Personnalisée
PS. Il est possible de modifier ma fonction à l'appui de client-côté dropdownlist valeur. Mais je pense qu'il est impossible d'utiliser cette fonction pour le serveur-côté dropdownlist valeur.
Mise à jour
Dans la dernière jqGrid 3.8.1, j'ai juste trouvé quelques bug lorsque l'utilisateur d'annuler l'édition de la ligne(ou la programmation d'appel "restoreRow" la méthode), jqGrid va créer une étiquette en utilisant la clé de données (au lieu de la valeur de données). J'ai créer la fonction suivante pour résoudre ce problème. Pour utiliser cette fonction, vous devez comme de mise en forme personnalisée fonction de cette colonne. Cette fonction des cartes valeur de la cellule à la valeur de la liste par la comparaison clé ou une valeur.
Donc, vous pouvez envoyer la clé ou la valeur de données de la colonne à être rendue par la mise en forme personnalisée.
OriginalL'auteur Soul_Master
Si dans le cas où vous avez des exigences, où chaque ligne a déroulante et il a des valeurs comme
FE:'FedEx',
DANS:'InTime',
TN:'TNT'
Maintenant, au lieu d'enregistrer les données de backend sur la liste déroulante changer de l'événement;vous voulez enregistrer les données sur le bouton "Enregistrer", cliquez sur dans la ligne de niveau, mais souhaitez enregistrer dropdwon valeur sélectionnée (TN) pas d'affichage de texte(TNT). Vous pouvez créer un autre champ caché pour définir la sélection de code de pays sur la modification en ligne de la liste déroulante. Ici, lorsque l'utilisateur après la sortie de la cellule d'édition en ligne afterSaveCell méthode sera appelée, et vous pouvez le configurer comme indiqué dans le code ci-dessous:
OriginalL'auteur kiran patel