2014-12-19 3 views
0

У меня есть панель следующим образом:ExtJS SetTitle() не обновляет заголовок панели

Ext.define('TestPanel', { 
    extend: 'Ext.panel.Panel', 
    alias: 'widget.testPanel', 
id: 'testerPanel', 
title: 'oldTilte', 
//other code 
}); 

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

var grid = Ext.getCmp('testerPanel'); 
grid.setTitle('newTitle'); //doesn't update the title 

//tried with including ref or view in the controller 
this.getTestPanel().setTitle('newTitle'); //this didn't update it either 

Как обновить заголовок панели? Кроме того, для обеих попыток, если я печатаю console.info(grid) или console.info(this.getTestPanel()), я всегда вижу обновленный заголовок на консольном выходе, но сам пользовательский интерфейс остается неизменным.

+0

уверены, что там нет других экземпляров сетки? Вы используете getCmp для получения экземпляра сетки, и это всегда опасно, потому что вы должны убедиться, что идентификаторы уникальны. Вместо этого используйте ComponentQuery. – Saki

ответ

1

Ознакомьтесь с приведенной ниже демонстрацией Jsfiddle для вашего требования, чтобы она работала. Сетка с начальным названием. Панель инструментов Grid содержит одну кнопку 'Change Title' нажмите, чтобы увидеть требуемое решение.

this.up('grid').setTitle('New Grid Title');

Здесь работает демо для Вверху: http://jsfiddle.net/PhAbR/83/

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