gpt4 book ai didi

javascript-framework - ExtJS 工具栏无法正确呈现

转载 作者:行者123 更新时间:2023-12-04 10:02:38 26 4
gpt4 key购买 nike

我有一个窗口,我想在顶部添加一个工具栏,并在剩余区域添加一个用于加载内容的面板。不幸的是,当我添加内容面板时,工具栏会扩展到不成比例的大小。我试过对大小进行硬编码,但这似乎不起作用。我究竟做错了什么?

预先感谢您的回复:

  // Main application entry point
Ext.onReady(function() {
var loginWin;
var mainWin;
var content;

var form = new Ext.form.FormPanel({
baseCls: 'x-plain',
labelWidth: 70,
//url:'',
defaultType: 'textfield',

items: [{
fieldLabel: ' User Name',
name: 'username',
anchor:'100%' // anchor width by percentage
},{
inputType: 'password',
fieldLabel: ' Password',
name: 'password',
anchor: '100%' // anchor width by percentage
}]
});

content = new Ext.Panel({
baseCls: 'x-plain',
layout:'fit',
anchor:'90%',
height: 500,
items: [
{
title: 'blah',
html: '<div>hello</div>'
}
]
});

var tb = new Ext.Toolbar({
height: 100,
//renderTo: mainWin
});
tb.render('toolbar');

var toolbarPanel = new Ext.Panel({
layout:'fit',
anchor:'10%',
width:100,
items: tb
});

var menu = new Ext.menu.Menu({
id: 'mainMenu',
style: {
overflow: 'visible' // For the Combo popup
},
items: [
{ text: 'blah'
},
{ text: 'blah2'
}
]
});

tb.add(
{
text: 'Classes',
iconCls: 'bmenu',
handler: function(){ alert('blah'); }
},
{
text: 'GPA',
iconCls: 'bmenu',
handler: function(){ alert('blah'); }
},
{
text: 'Semester Schedule',
iconCls: 'bmenu',
handler: function(){
}
},
{
text: 'Help',
iconCls: 'bmenu', // <-- icon
handler: function(){ alert('blah'); }
}
);
tb.doLayout();

if(!mainWin){
mainWin = new Ext.Window({
applyTo:'main-win',
resizable: false,
modal: true,
layout:'fit',
width:'80%',
height:'100%',
y: 0,
closeAction:'hide',
plain: true,
items: [ toolbarPanel, content ]
});
}

if(!loginWin){
loginWin = new Ext.Window({
applyTo:'hello-win',
closable:false,
layout:'fit',
width:300,
height:130,
closeAction:'hide',
plain: true,

items: form,

buttons: [{
text:'Login',
handler: function(){
loginWin.hide();
mainWin.show();
}
},{
text: 'Close',
handler: function(){
loginWin.hide();
}
}]
});
loginWin.show(this);
}

})

最佳答案

似乎您不正确地使用工具栏:

var toolbarPanel = new Ext.Panel({
layout:'fit',
anchor:'10%',
width:100,
items: tb
});

在这里你告诉这个面板,“拿你的一件元素,让它和我一样大”。这就是布局“适合”的作用。所以很自然地,它将使用您在 items 中提供的工具栏。并将其扩展为与面板一样大。
Ext.Panel对象有一个 tbar用于保存工具栏的配置属性。您不需要工具栏面板和内容面板。相反,将工具栏添加到您的内容面板。此外,不要担心显式呈现工具栏,或事后添加项目。将对象一起写在它们将被初始化的地方会更好更清晰(如果可能的话)

以下是我建议创建内容面板的方法:
content = new Ext.Panel({
baseCls: 'x-plain',
layout:'fit',
tbar: [
{
text: 'Classes',
iconCls: 'bmenu',
handler: function(){ alert('blah'); }
},
{
text: 'GPA',
iconCls: 'bmenu',
handler: function(){ alert('blah'); }
},
{
text: 'Semester Schedule',
iconCls: 'bmenu',
handler: function(){
}
},
{
text: 'Help',
iconCls: 'bmenu', // <-- icon
handler: function(){ alert('blah'); }
}],
items: [
{
title: 'blah',
html: '<div>hello</div>'
}
]
});

另请注意,我取出了您面板的 height属性,因为它被放置在一个布局为“适合”的窗口中,因此该窗口将执行所有调整大小(无需在面板本身上指定)。
    mainWin = new Ext.Window({
applyTo:'main-win',
resizable: false,
modal: true,
layout:'fit',
width:'80%',
height:'100%',
y: 0,
closeAction:'hide',
plain: true,
items: [ content ]
});

祝你好运!

关于javascript-framework - ExtJS 工具栏无法正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com