2010-04-01 2 views
0

У меня есть сетка Ext с плагином RowEditor. У меня есть следующий код, чтобы добавить событие afteredit к объекту roweditor.Ext RowEditor.js не запускает событие «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"); 
       } 
      } 
     }); 
    }); 

, когда я нажимаю строку и изменить значение, иногда «afteredit» сетки пожаров события, но иногда нет.

Есть ли проблема с моим кодом выше?

+2

Вы подтвердили, что событие afteredit на самом деле не срабатывает, а ваш обратный вызов ajax не называется? Вы положили точку останова в Firebug, чтобы подтвердить это? –

ответ

1

Ext.grid.EditorGridPanel.prototype.onEditComplete = функция (е, значение, startValue) { предупреждение ('ASD') }

-1

Я также испытал над той же проблемой в моем коде ExtJS. Проведя довольно долгое время отладки моего приложения, я понял, что проблема не исходит из моего кода, а из самого плагина RowEditor.

Плагин работал, создавая ссылку на запись, которую пользователь хотел обновить, и после того, как пользователь нажал кнопку «Обновить», он будет сравнивать новые и старые значения, и если какое-либо значение будет отличаться, оно выполнит обновление. Проблема заключалась в том, что иногда запись обновляла значения до того, как это сравнение будет выполнено, что приведет к тому, что сравнение не найдет никаких разных значений и не выйдет из функции.

Я отредактировал код файла RowEditor.js, чтобы вместо сравнения с фактической записью я создавал клон записи и сравнивал новые значения со своими значениями. Поскольку это клон, его значения никогда не меняются и проблема устранена. Обновленный код можно найти здесь:

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

+0

Было бы полезно, если бы вы просто показали свой код; плагин довольно маленький. Я подозреваю, что это была попытка спама (или, может быть, даже вирус). – Kris

-1

Я считаю, что этот вопрос был решен, когда я попробовал его сегодня, он работает отлично, как и ожидалось.