2010-04-01 3 views
0

J'ai une grille Ext avec le plugin RowEditor. J'ai le code suivant pour ajouter l'événement 'afteredit' à l'objet roweditor.Ext RowEditor.js ne déclenche pas l'événement 'afteredit'

store.on('update',function(){ 
    }); 

    editor.on("afteredit",function(roweditor,changes,record,index){ 

     $.ajax({ 
      url: $("#web").val() + "/registration/client/address-save" 
      ,type: 'post' 
      ,data: record.json 
      ,dataType: 'json' 
      ,success: function(data){ 
       if(data.success == true){ 
        alert("Update Successfully"); 
       } 
      } 
     }); 
    }); 

lorsque je clique sur une ligne et modifier une valeur, parfois les feux de grille événement de la AfterEdit ', mais parfois il ne fonctionne pas.

Est-ce que j'ai un problème avec mon code ci-dessus?

+2

Avez-vous confirmé que l'événement afteredit ne se déclenche pas, alors que votre rappel ajax n'est pas appelé? Avez-vous mis un point d'arrêt dans Firebug pour le confirmer? –

Répondre

1

Ext.grid.EditorGridPanel.prototype.onEditComplete = function (e, valeur, startValue) { alert ('asd') }

-1

J'ai aussi connu le même problème ci-dessus dans mon code ExtJS. Après avoir passé un certain temps à débugger mon application, j'ai réalisé que le problème ne venait pas de mon code mais du plugin RowEditor lui-même. Le plugin fonctionnait en créant une référence à l'enregistrement que l'utilisateur voulait mettre à jour, et après que l'utilisateur ait cliqué sur le bouton Update, il comparait les nouvelles et les anciennes valeurs, et si une valeur était différente, il exécutait une mise à jour. Le problème était que parfois l'enregistrement obtenait ses valeurs mises à jour avant que cette comparaison soit exécutée, ce qui faisait que la comparaison ne trouvait pas de valeurs différentes et quittait la fonction.

J'ai édité le code du fichier RowEditor.js afin qu'au lieu de faire des comparaisons avec l'enregistrement réel, je crée un clone de l'enregistrement et compare les nouvelles valeurs avec ses valeurs. Comme c'est un clone, ses valeurs ne changent jamais et le problème est éliminé. Le code mis à jour se trouve ici:

http://www.mediafire.com/?l0h8efhvc9wb2fp

+0

Il aurait été utile si vous avez simplement montré votre code; le plugin est assez petit. Je pense que c'était une tentative de spam à la place (ou peut-être même un virus). – Kris

-1

Je crois que cette question se est résolu, quand je l'ai essayé aujourd'hui, il fonctionne bien, comme prévu.