Получение компонента в ExtJS - PullRequest
1 голос
/ 16 декабря 2010

Я создаю GridPanel следующим образом:

grid = new xg.GridPanel({
    id: 'gridid',
    store: store,
    columns: [
    ...

Позже я пытаюсь получить элемент, чтобы в него можно было загружать новые данные.В документации Sencha говорится, что loadData доступен для объекта GridPanel

alt text

Итак, я попробовал это:

Ext.getCmp('gridid').loadData(store);

И это chromes console выводит эту ошибку:

Uncaught TypeError: Object [object Object] has no method 'loadData'

Интересно, когда я пытаюсь

Ext.getCmp('gridid').getStore().loadData(store);

Эта ошибка исчезает, и текущее хранилище исчезает из таблицы, но оно остается пустым, новое хранилище не загружается.Пожалуйста, помогите!

ОБНОВЛЕНИЕ: Когда я сохраняю консоль журнала, я вижу всю информацию внутри объекта в том виде, в котором она должна отображаться, но она не отображается в сетке.

Ответы [ 2 ]

3 голосов
/ 16 декабря 2010

Предполагая, что store, который вы передаете в функцию loadData, отличается от хранилища сетки, попробуйте что-то вроде этого:

var gridStore = Ext.getCmp('gridid').getStore();
gridStore.removeAll();
gridStore.add(store.getRange());
1 голос
/ 16 декабря 2010

мой Ext немного ржавый, но я почти уверен, что loadData передает сами данные (например, массив записей / объектов), а не хранилище.

Как вы объявили свой магазин? это загрузка удаленных данных или статических локальных данных?

Вот пример использования loadData здесь: http://extjs.wima.co.uk/example/4

Если вы используете удаленные данные, возможно, вам просто не хватает автозагрузки в декларации вашего магазина ..

...