2010-08-11 3 views
0

Когда я создаю два окна, содержащих один объект текстового поля в каждом окне. Но Id этого текстового поля тот же. Когда я изменяю размер, увеличиваю или уменьшаю объект окна, элементы управления перемещаются из одного окна в другое. Пожалуйста, посмотрите на следующий код и повторно размера первого окна под заголовком: 'окно' 1EXTJS: два окна с объектами с одинаковым идентификатором

Ext.onReady (функция() {

var win = new Ext.Window({ 
    title : 'window 1', 
    width:200, 
    height:200, 
    maximizable : true, 
    x : 50, 
    items: [{xtype : 'textfield', id: 'text1'}] 
}); 

win.show(this); 

var win2 = new Ext.Window({ 
    title : 'window 2', 
    width:200, 
    height:200, 
    maximizable : true, 

    x : 350, 
    items: [{xtype : 'textfield', id: 'text1'}] 

}); 

win2.show(this); 

});

ответ

3

Что касается HTML, то каждый ID должен быть уникальным. В противном случае вы получите .

Действительно, метод Ext.get имеет кэш на основе элемента id.

Итак, настоящий вопрос: Почему вы устанавливаете одинаковый идентификатор в текстовые поля?

Если вам нужен известный идентификатор, вы можете использовать:

tId = Ext.id(); // generates an id 
items: [{xtype : 'textfield', id: tId}] 

Или получить доступ к TextField элемент/компонент позже, вы можете использовать реф или Itemid: http://dev.sencha.com/deploy/dev/docs/?class=Ext.Component