8
votes

Objet en ligne JQGRID à OnSelectrow

Comment obtenir l'objet de ligne sur la ligne sélectionnée dans JQGrid? J'ai besoin de l'objet réel, pas de la cellule cellulaire. J'ai traversé la documentation mais je n'ai pas trouvé une méthode qui me donnera l'objet de la rangée. Depuis que j'utilise des formateurs personnalisés, levalue ne fonctionnera pas.


0 commentaires

3 Réponses :


10
votes

Si vous implémentez formateur personnalisé et souhaitez obtenir la valeur de la cellule avec respect de getcell ou getrowdata Vous devez mettre en place Unformat fonction aussi.

Ce n'est pas clair ce que vous voulez dire sous "J'ai besoin de l'objet réel, pas de la celluleValue". Il est également difficile de savoir quel DataType vous utilisez, que vous utilisiez loadoince: true option ou non et si vous chargez les données du serveur dans lesquelles les données seront affichées sur Le serveur.

Si vous utilisez DataType: 'local' ou utilisez loadoince: true les données internes et et et _index Les paramètres seront remplis. Pour obtenir des données brutes de la grille par rowid , vous pouvez utiliser xxx

ou xxx p> Si vous n'utilisez pas DataType: 'local' ou utilisez loadoince: true et chargez les données du serveur que vous pouvez enregistrer l'objet représenté les données de la réponse du serveur dans une variable (dans un objet). Le gestionnaire d'événements loadcommete a un paramètre data qui est les données brutes publiées sur le serveur. Donc, vous êtes capable de sauvegarder les données dont vous avez besoin dans un objet (sur une carte qui obtiendra votre objet Yut par Rowid) et utilisez-le à l'intérieur du WNSElectrow Gestionnaire d'événements.


4 commentaires

@Systemparadox: Vous êtes les bienvenus! Je vous recommande d'examiner en outre la méthode getlocalrow . Look La réponse ou Un autre pour certains exemples de code et des informations supplémentaires. Le code source de La méthode est très petite et je vous recommande de le lire aussi.


Je dois admettre que je l'ai toujours négligé, mais le stockage des données pour une utilisation ultérieure sur la ChargePlete est une fonctionnalité très précieuse. Puisque je n'utilise jamais de type de données: "local" ou loadonce: true. Je me demande même pourquoi il n'est pas stocké par défaut dans une sorte de propriété 'Rawdata'. Quoi qu'il en soit, merci de le pointer sur Oleg. +1


@Steven: Vous êtes les bienvenus! Je recommande d'utiliser loadoince: true et petit rownum (la taille de la page) au cas où si le nombre total de lignes inférieures à 1000 ou même 10000. Par exemple La démo utilise 4000 lignes, 13 colonnes et 20 rangées dans une page et Une autre démo affiche 40000 rangées. Vous pouvez essayer de trier, de la page et de filtrer la grille pour voir la performance.


@Oleg: Salut Oleg Merci pour les grands exemples. Je suis conscient que la chargement de toutes les données n'a à la fois que des avantages. Le chargement de données de DB (qui est au-delà de ma responsabilité) prend de nombreux cas trop longtemps pour charger si je demande toutes les données. Donc, j'envoie des requêtes paginées à la DB.



3
votes

Vous pouvez utiliser les méthodes getind and getlocalrow: xxx

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:Methods


0 commentaires

3
votes

Dans mon projet:

ondblClickRow : function(rowid,iRow,iCol,e) {
    $($("#completeDetail").getInd(rowid,true)).find(":first").click();
}


0 commentaires