我可以将HTML元素(如文本和图像)放在面板标题中,如下所示:
var grid = new Ext.grid.GridPanel({
region: 'center',
style: 'margin: 10px',
store: new Ext.data.Store({
data: myData,
reader: myReader
}),
headerCfg: {
tag: 'div',
cls: 'x-panel-header',
children: [
{ tag: 'div', cls: 'panel_header_main', 'html': 'Shopping Cart' },
{ tag: 'div', cls: 'panel_header_icon1', 'html': '<img src="images/icon_plus.png" />' },
{ tag: 'div', cls: 'panel_header_icon2', 'html': '<img src="images/icon_pencil.png" />' },
{ tag: 'div', cls: 'panel_header_extra', 'html': 'Order Number: 2837428347' }
]
},
看起来不错:
但是当我添加不像这样的纯HTML的下拉元素时:
var grid = new Ext.grid.GridPanel({
region: 'center',
style: 'margin: 10px',
store: new Ext.data.Store({
data: myData,
reader: myReader
}),
headerCfg: {
tag: 'div',
cls: 'x-panel-header',
children: [
{ tag: 'div', cls: 'panel_header_main', 'html': 'Shopping Cart' },
{ tag: 'div', cls: 'panel_header_icon1', 'html': '<img src="images/icon_plus.png" />' },
{ tag: 'div', cls: 'panel_header_icon2', 'html': '<img src="images/icon_pencil.png" />' },
{ tag: 'div', cls: 'panel_header_extra', 'html': 'Order Number: 2837428347' },
{
width: 100,
xtype: 'combo',
mode: 'local',
value: 'en',
triggerAction: 'all',
forceSelection: true,
editable: false,
fieldLabel: 'Produkt',
name: 'language',
hiddenName: 'language',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'German', value: 'de'},
{name : 'English', value: 'en'},
{name : 'French', value: 'fr'}
]
})
}
]
},
它将脚本呈现到标题中:
甚至可以在面板的标题中放置非HTML元素吗?如果是这样,它是如何完成的?
答案 0 :(得分:4)
最好将组合放在网格的工具栏中。工具栏扩展了Ext.Container,因此更适合包含其他Ext组件。请尝试以下方法:
var grid = new Ext.grid.GridPanel({
region: 'center',
style: 'margin: 10px',
store: new Ext.data.Store({
data: myData,
reader: myReader
}),
tbar: new Ext.Toolbar({
ctCls: 'panel-header',
items: [
{ xtype: 'tbfill' },
{ tag: 'div', cls: 'panel_header_main', 'html': 'Shopping Cart' },
{ tag: 'div', cls: 'panel_header_icon1', 'html': '<img src="images/icon_plus.png" />' },
{ tag: 'div', cls: 'panel_header_icon2', 'html': '<img src="images/icon_pencil.png" />' },
{ tag: 'div', cls: 'panel_header_extra', 'html': 'Order Number: 2837428347' },
{
width: 100,
xtype: 'combo',
mode: 'local',
value: 'en',
triggerAction: 'all',
forceSelection: true,
editable: false,
fieldLabel: 'Produkt',
name: 'language',
hiddenName: 'language',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'German', value: 'de'},
{name : 'English', value: 'en'},
{name : 'French', value: 'fr'}
]
})
}
]
}),
答案 1 :(得分:2)
GridPanels有两个您可能感兴趣的属性:tbar
和bbar
;分别是顶部和底部toolbars。
工具栏允许您添加按钮,菜单项,下拉列表和其他ExtJS组件以及常规HTML。有一个toolbar on the ExtJS examples page的例子。
通常,工具栏代码与现有代码非常相似:
//instead of 'headerCfg:'
tbar: {
xtype: 'toolbar',
cls: 'x-panel-header',
items: [
//your items
]
}
答案 2 :(得分:1)
您可以使用标头配置来实现此目的。
header: {
xtype: 'header',
titlePosition: 0,
defaults: {
padding: '0 0 0 0'
},
items: [
{
xtype: 'mycombo' // or use Ext.create('class') instead of lazy instantiation
}, {
xtype: 'button',
text: '<b>\u2199</b>'
}
]
},