Показать сообщение отдельно
  #2 (permalink)  
Старый 09.09.2011, 09:53
Интересующийся
Отправить личное сообщение для Костэн Посмотреть профиль Найти все сообщения от Костэн
 
Регистрация: 09.02.2011
Сообщений: 17

Сообщение от ilshat Посмотреть сообщение
замучался искать
может кто знает

при работе стореджа с сервером (например удаление строки) командой
getStore().remove(rec)
через аяксовый прокси - екст сначала удаляет строку из стореджа и соответственно строчку из грида и только потом посылает запрос на сервер на удаление.

вопрос в том как обработать ситуацию - если удалить на стороне сервера не получилось а строки в гриде и в сторедже уже нет.
Попробуйте следующим образом:
1.
Ext.Ajax.request({
url: 'serverPageURL',
params: {
REMOVERECORD: Ext.getCmp('gridID').getSelectionModel().getSelected().data.recordID,
},
success: function(response){
result = Ext.util.JSON.decode(response.responseText);
if (result.result == 1) {
Ext.getCmp('gridID').store.removeAll();
Ext.getCmp('gridID').store.reload();									
}
else if (result.result == 0) {
Ext.Msg.alert('Системное сообщение', result.messageText);
}
},
failure: function(response){
Ext.Msg.alert('Системное сообщение', 'Не удалось выполнить запрошенное действие');
});

2. На стороне сервера принимаете значение "REMOVERECORD", делаете запрос на удаление, после которого, если используете PHP, идёт or die('"result":"0","messageText":"Не удалось удалить выбранную запись"') - это по желанию, но будет полезным, если удаления не произойдёт.
3. После этого пишете - echo '({"result":"1"})';

Последний раз редактировалось Костэн, 09.09.2011 в 09:59.
Ответить с цитированием