обновление компонента extjs - PullRequest
       31

обновление компонента extjs

1 голос
/ 21 октября 2010

У меня есть несколько компонентов extjs на моей странице, диаграммы, gird, formPanel и т. Д., И теперь я сталкиваюсь с некоторыми проблемами при обновлении их, например, для gridPanle:

Это коды сетки:

var myStore=new Ext.data.JsonStore({
  autoLoad:true,
  fields:['name','age'.....]
});

var grid = new Ext.grid.GridPanel({
  stroe:myStore,
  colums:myColumns
  //....other config
});

Когда событие перезагрузки строки, если оно выполнено (инициировано пользователем), хранилище получит новые данные со стороны сервера, обновление панели сетки, это нормально,

однако иногда данные с сервера равны нулю (например, по запросу клиента данные не найдены), если это так, на панели сетки также хранятся данные последнего запроса,

какчтобы обновить сетку (ничего не показывать) и показать пользователю что-то, что данные не найдены?

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

Я думал использовать добавитьобработчик для обработки события обновления компонента, перед его обновлением проверьте хранилище, если хранилище пустое, затем что-то сделайте, однако я обнаружил, что не могу получить хранилище компонента, а также его evНапример, ent различны:

Для GridPanle существует событие beforerender

http://dev.sencha.com/deploy/dev/docs/?class=Ext.grid.GridPanel

Для диаграммы естьсобытие beforerefresh

http://dev.sencha.com/deploy/dev/docs/?class=Ext.chart.Chart

Так использовать рендер или обновить?

Есть идеи?

1 Ответ

1 голос
/ 23 октября 2010

«нулевой» ответ от сервера обычно считается ошибкой.

В вашем примере сетки, если ничего не совпадает, должно быть некоторое представление набора записей с нулевыми записями. Для типичного JsonStore ответ должен выглядеть следующим образом:

{ total:0, items:[] }

(при условии, что totalProperty равно «total» и корень «items»)

Таким образом, это все еще правильный ответ (даже если он не нулевой).

Если ваш сервер отправляет обратно «ноль» или пустой необработанный ответ (строка нулевой длины), JsonReader не знает, как с этим справиться, и ошибками или залогами.

...