2010-12-15 3 views
1

создать GridPanel так:Получение компонентов в ExtJS

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

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

alt text

Так что я попытался это:

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

И chromes консольных печатает эту ошибку:

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

Интересно, когда я попробую

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

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

UPDATE: Когда я console.log хранилище, я вижу всю информацию внутри объекта, как он должен появляться, но не отображаться в сетке.

ответ

3

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

var gridStore = Ext.getCmp('gridid').getStore(); 
gridStore.removeAll(); 
gridStore.add(store.getRange()); 
+0

Спасибо wombleton это работало, :) – 2010-12-16 03:08:39

1

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

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

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

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

Смежные вопросы