Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.09.2011, 15:23
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

заморочка с гридом
замучался искать
может кто знает

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

вопрос в том как обработать ситуацию - если удалить на стороне сервера не получилось а строки в гриде и в сторедже уже нет.
Ответить с цитированием
  #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.
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2011, 17:46
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

да. как вариант можно сделать и так.
Но тогда теряется смысл аяксового прокси - если создавать запросы и обработку явным образом.
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2011, 16:24
Интересующийся
Отправить личное сообщение для Костэн Посмотреть профиль Найти все сообщения от Костэн
 
Регистрация: 09.02.2011
Сообщений: 17

Сообщение от ilshat Посмотреть сообщение
да. как вариант можно сделать и так.
Но тогда теряется смысл аяксового прокси - если создавать запросы и обработку явным образом.
Смысл аяксового прокси теряется автоматический, когда запись в гриде удаляется без оповещения с сервера о успешном запросе. На мой взгляд, в данной ситуации это подходящее решение, так как в случае неудачи, пользователь сможет увидеть причину, по которой не удалось выполнить запрошенное действие. В любом случае, это всего лишь дело вкуса.
Ответить с цитированием
  #5 (permalink)  
Старый 13.09.2011, 13:13
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

Решение то подходящее. Только больше похоже на заплатку)))
хотя чем больше работаю с ескстом, то тем больше убеждаюсь что продукт более чем сырой...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ломаю голову... С браузерами заморочка Dexter2010 Firefox/Mozilla 2 11.06.2010 21:12