У меня есть компонент Ext.window.Window с minHeight и minWidth, установленный в конфигурационных параметрах, например:
config: {
minWidth: 860,
minHeight: 580
},
Теперь я хочу изменить эти свойства в такой функции:
Ext.getCmp('x').setMinWidth(1280);
но этот Setter еще не существует в ExtJS 4.0.5. (В более поздних версиях он делает)
Я также попытался сделать это:
Ext.getCmp('x').config.minWidth = 1280;
но он также не работает.
Заранее спасибо.
В окне ExtJS вы можете использовать метод
updateLayout
после изменения значения конфигурации.
updateLayout обновляет эту компоновку компонента. Если это обновление влияет на этот компонент ownerCt, этот компонент updateLayout метод будет вызываться для выполнения макета вместо этого. В противном случае только этот компонент (и его дочерние элементы) будет иметь макет.
Здесь я создал и скрипку sencha sciddle. Он покажет, как работает, надеюсь, это поможет вам решить вашу проблему или выполнить ваши требования.
Ext.create('Ext.window.Window', {
title: 'Hello',
minWidth: 400,
minHeight: 300,
layout: 'vbox',
items: [{ // Let put an empty grid in just to illustrate fit layout
xtype: 'grid',
flex: 1,
width: '100%',
border: false,
store: {
fields: ['name', 'email', 'phone'],
data: {
'items': [{
'name': 'Lisa',
"email": "[email protected]",
"phone": "555-111-1224"
}, {
'name': 'Bart',
"email": "[email protected]",
"phone": "555-222-1234"
}, {
'name': 'Homer',
"email": "[email protected]",
"phone": "555-222-1244"
}, {
'name': 'Marge',
"email": "[email protected]",
"phone": "555-222-1254"
}]
},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
},
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone'
}],
}, {
xtype:'button',
text: 'Update min height and width with Random Number',
height: 40,
margin: 10,
width:'100%',
renderTo: Ext.getBody(),
handler: function () {
/**
* Returns a random integer between min (inclusive) and max (inclusive)
* Using Math.round() will give you a non-uniform distribution!
*/
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var num = getRandomInt(300, 600),
wind = this.up('window');
wind.minHeight = num;
wind.minWidth = num;
wind.updateLayout();
}
}]
}).show();