2010-12-01 6 views
0

J'ai un jqGrid avec quatre colonnes et dans lequel j'obtiens les lignes de la base de données. Maintenant, je veux quelque chose comme ça. Lors de la sélection de ligne, la valeur de cellule de la ligne doit être modifiée.La valeur de colonne de clic de ligne doit être changée dans jqgrid

-à-dire

SNo  SName  Update  Roll No 
    1  Steve  Rename  1001 
    2   Jack  Rename  1002 

Je veux mettre à jour le SName lorsque l'utilisateur sélectionne Renommer dans la ligne jqGrid par exemple, si les Selectes utilisateur renommage de la première ligne, puis la première ligne doit être comme le

suivant

-à-dire

SNo  SName  Update   Roll No 
1  Steve  Update/Cancel  1001 
2  Jack   Rename   1002 

Quelqu'un peut-il me suggérer comment obtenir le même

+1

Veuillez vérifier que le texte modifié (reformaté) correspond à ce que vous voulez demander. – Oleg

+1

Vous devez spécifier le type d'édition de ligne que vous utilisez (édition de formulaire, édition en ligne, édition de cellule ou toute autre forme d'édition de custon). Utilisez-vous un formatage personnalisé? – Oleg

+0

C'est ce format. Je veux utiliser l'édition en ligne pour ce qui précède. – hkv

Répondre

0

Il me semble que vous essayez de rendre les choses plus complexes. Pourquoi n'utilisez-vous pas le comportement standard de jqGrid "inline editing"?

Si l'utilisateur double-clique (ou clique en fonction de vos besoins) sur la ligne, les colonnes "modifiables" de la ligne peuvent être modifiées (voir old answer pour plus d'informations). Si l'utilisateur termine la modification de ligne en appuyant sur la touche "Entrée", le changement sera sauvegardé. Si l'utilisateur appuie sur la touche "Echap" ou sélectionne une autre ligne, les changements seront annulés. Ainsi, l'édition en ligne standard prend en charge le renommage/mise à jour/annulation sans colonne "mise à jour" supplémentaire. Si vous souhaitez avoir des boutons dans une colonne supplémentaire, vous pouvez utiliser formatter:"actions" ou utiliser la technique de "modification personnalisée" que vous pouvez voir sur the jqGrid demo si vous sélectionnez "Edition de ligne"/"Edition personnalisée".

+0

J'ai vérifié et son fonctionne bien mais que faire si je dois passer le même côté du serveur de sorte qu'il affecte également la DB. Quand j'appuie sur entrer alors il change mais pour cette session seule. Pouvez-vous me suggérer comment aller chercher cette valeur éditée de la rangée de sorte que je passe la même chose au serveur et fasse la mise à jour requise – hkv

+0

Je veux dire, après que j'appuie sur enter j'ai besoin de passer cette valeur éditée au serveur de sorte qu'en DB il obtienne également la valeur pour laquelle je fais le ondblClickRow suivant: fonction (id, ri, ci) { jQuery ("# ​​tblList"). jqGrid ("editRow", id, vrai); fnRowVal (rowid);}, fonction fnRowVal (ale) {var rowval = $ ("#" + ale); $ ('# dvFecthData'). html (rowval.html()); Var: SelectedValue = $ ('# dvFecthData.editable'). Val();) .trigger ("reloadGrid");} – hkv

+1

@hkv: Si le paramètre 'editurl' est défini, jqGrid publie les données modifiées dans l'url dans le cadre du travail qui utilise la méthode' editRow'. Vous ne devez implémenter que la méthode Web correspondante côté serveur. Voir http://stackoverflow.com/questions/3917102/jqgrid-add-row-and-send-data-to-webservice-for-insert/3918615#3918615 à titre d'exemple. – Oleg

Questions connexes