заморочка с гридом
замучался искать
может кто знает при работе стореджа с сервером (например удаление строки) командой 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"})'; |
да. как вариант можно сделать и так.
Но тогда теряется смысл аяксового прокси - если создавать запросы и обработку явным образом. |
Цитата:
|
Решение то подходящее. Только больше похоже на заплатку)))
хотя чем больше работаю с ескстом, то тем больше убеждаюсь что продукт более чем сырой... |
Часовой пояс GMT +3, время: 19:25. |