Я создал видовое окно в ExtJS с несколькими макетами (запад, центр, север). Одна из них - это сетка, к которой я добавил обработчик кликов. Этот клик должен открыть файл HTML или PHP в одном из макетов, но я не уверен, как получить доступ к элементу в центре от обработчика кликов на западе.ExtJS viewport один элемент, доступ к другому элементу
Ext.create('Ext.Viewport', {
layout: {
type: 'border',
padding: 5
},
defaults: {
split: true
},
items: [{
region: 'north',
border:false,
collapsible: false,
resizable:false,
title: 'North',
split: true,
height: 30,
html: 'north'
},{
region: 'west',
collapsible: true,
title: 'Navigation',
split: true,
width: '10%',
xtype: 'gridpanel',
itemid:'projectgrid',
hideHeaders: true,
columns: [{header: 'NID', dataIndex: 'NavName', flex: 1}],
store: navStore,
listeners: {
itemclick: function(dv, record, item, index, e) {
alert(record.get('NavPage'));
}
}
},{
region: 'center',
layout: 'border',
border: false,
id: 'renderArea',
items: [{
region: 'center',
html: 'center center',
title: 'Center',
items: [cw = Ext.create('Ext.Window', {
xtype: 'window',
closable: false,
minimizable: true,
title: 'Constrained Window',
height: 200,
width: 400,
constrain: true,
html: 'I am in a Container',
itemId: 'center-window',
minimize: function() {
this.floatParent.down('button#toggleCw').toggle();
}
})]
}]
}]
});
Спасибо. Я попробую. Я где-то читал, что лучше избегать этого, но это похоже на единственный вариант. –
Существует несколько способов сделать это, это предпочтительнее, потому что с помощью itemId он является локальным для контейнера, и запрос ограничен логикой класса. –
Спасибо, сработало. Почему мне нужно использовать # в нисходящей строке? –