2013-05-30 4 views
0

Я хочу назвать перенастроить на сетке, чтобы изменить текст столбца, как этот примерСенча Ext, изменение столбца текста

http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/build/KitchenSink/ext-theme-neptune/#reconfigure-grid

Однако я хочу сделать это с помощью внешнего устройства, которое не имеет ничего общего с сетки.

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

Любая помощь ценят благодаря

EDIT

Если вы посмотрите на ссылку в сообщении, то это:

onShowOfficesClick: function(){ 
var grid = this.down('grid'); 
Ext.suspendLayouts(); 
grid.setTitle('Employees'); 
grid.reconfigure(this.createOfficeStore() 

Показывает, как перенастроить сетку.

То, что я пытаюсь сделать, это получить ссылку сетки от внешней функции, не уверен, если его можно

Вот некоторые из моего кода

var Social_Environment_Grid = Ext.create('Ext.data.Store', { 

Переход к создать магазин, не так актуальна

Тогда это отдельная функция Jquery я хочу назвать

Social_Environment_Grid.reconfigure(false, newColumArray) 

А я получаю ошибку Social_Environment_Grid не имеет метод переконфигурируйте, так что я предполагаю, что это не правильный эталонный объект

Надеется, что это имеет смысл

Редактировать Fixed

Fixed это благодаря всяким комментариям и ответы здесь была моя проблема

var Panel1 = Ext.create('Ext.panel.Panel', { 
    layout: 'fit', 
    height: 400, 
    layout: { 
     type: 'vbox', // Arrange child items vertically 
     align: 'stretch', // Each takes up full width 
     padding: 5 
    }, 
    items: [{ // Results grid specified as a config object with an xtype of 'grid' 
     xtype: 'grid', 
     id: 'Panelxx1', 
     columns: [ 

Затем вызовите

Ext.getCmp('Panelxx1').reconfigure(false,alternativeIndex); 

я не ссылающийся на сетку, а также не вызывая ссылку на объект правильно, спасибо за помощь каждого

+0

В 'Ext.grid.Panel.prototype' есть метод' reconfigure ', за исключением случаев, когда вы явно удалили его (из прототипа!), Переменная, в которой вы закончили, не является ссылкой на сетку панель ... Не могли бы вы показать нам свой код, чтобы мы могли понять, что не так? – rixo

+0

Спасибо за ваш отзыв rixo, я добавил еще код на вопрос –

+1

Ваш код на самом деле не имеет смысла. Указанная переменная относится к хранилищу, а не к сетке. –

ответ

1

Что вы должны сделать для того, чтобы обновить вид сетки является вызывающей reconfigure метод объекта сетки , То есть, переменная grid в вашем примере кода.

Как указано в doc, этот метод принимает новое хранилище в качестве его первого аргумента, а новый массив столбцов - второй, как необязательный.

Итак, если поля вашей модели данных меняются, вы должны создать новый магазин с обновленными полями. Если ваш магазин основан на модели, вы можете сначала обновить его, используя статический метод setField (например,My.Model.setFields(...)), а затем создайте новый магазин, используя эту модель, и передайте ее методу reconfigure сетки.

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

Теперь ваша проблема заключается в том, чтобы получить ссылку на ваш объект сетки в том месте, которое вы хотите назвать reconfigure. Есть много способов добиться этого. Самый простой (за исключением использования глобальной переменной, которую вы действительно никогда не должны делать) должен был бы дать вашей сетке идентификатор с опцией конфигурации id, и когда вам понадобится ваша сетка, вы можете получить ссылку с Ext.getCmp(myGridId). Это, вероятно, не самый чистый в вашей ситуации, но нам нужно знать контекст, в котором вы хотите позвонить reconfigure, чтобы дать более подходящие предложения.

+0

, я дам это в ближайшее время –