Сообщение от 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"})';