2010-06-04 5 views
0

Je dois éditer une ligne dans Jqgrid. Lorsque j'essaie de sélectionner une ligne, elle est enregistrée même si je n'effectue aucun changement dans cette ligne. Je dois sélectionner une ligne et il devrait enregistrer seulement quand je fais des changements. Quelqu'un peut-il m'aider pour ce problème. Ci-dessous le code.Modification dans jqGrid avec asp.net mvc

//for inline edit 
$('#PayorList').setGridParam({ 
    onSelectRow: function(id){ 
     if(id && id != lastSel){        
      //save changes in row 
      //$('#PayorList').restoreRow(lastsel); 
      $('#PayorList').saveRow(lastSel, succesfunc,'','',aftersavefunc); 
      lastSel=id; 
      } 
      //trigger inline edit for row 
      $('#PayorList').editRow(id, true,oneditfunc, succesfunc,'','',aftersavefunc); 
      } 
      }); 

Répondre

0

Il n'existe pas de solution simple à ce problème en utilisant l'API. Vous pouvez utiliser getRowData pour inspecter la ligne éditée pour déterminer si quelque chose a changé, mais comme la ligne sera toujours dans l'état édité à ce point, vous devrez analyser HTML brut pour obtenir les valeurs - vous ne pouvez pas les obtenir directement en utilisant cette méthode. Mais si vous utilisez cette technique pour déterminer si les données d'une ligne n'ont pas changé, vous pouvez simplement appeler restoreRow pour annuler la modification. Sinon, vous pourriez tout simplement exécuter saveRow de toute façon - vous n'avez pas vraiment dit quel genre de problème il causait pour vous. S'il y a un vrai problème, pouvez-vous être plus précis?

0

J'utilise ondblClickRow pour basculer jqGrid en mode d'édition en ligne. Les modifications seront sauvegardées si l'utilisateur appuie sur la touche "enter" ou annulée sur la touche "esc". Probablement c'est le chemin que vous voudriez aussi. Voir jqGrid - edit only certain rows for an editable column pour un exemple.

Questions connexes