我想在我的面板的标题中添加文字和可点击的图标,如下所示:
我找到了一些old hacks from 2008 to do this,但可以想象更新版本的ExtJS允许您以更直接的方式将文本和图标放在面板标题中。
在Ext.Panel标题中放置文字和可点击图标的最简单方法是什么?
感谢@Stefan工作,这是我的解决方案:
使用Javascript:
var grid_shopping_cart = new Ext.grid.GridPanel({
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_extra', 'html': 'Order Number: 2837428347' }
]
},
width: 600,
height: 390,
...
listeners: {
'afterrender' : function(p) {
p.header.on('click', function(e, h) {
alert('you clicked the plus');
}, p, {
delegate: '.panel_header_icon1',
stopEvent: true
});
},
...
CSS:
div.panel_header_main {
text-align: left;
float: left;
}
div.panel_header_extra {
text-align: left;
float: right;
margin-right: 10px;
}
div.panel_header_icon1 {
text-align: right;
float: right;
margin-left: 3px;
cursor: hand;
cursor: pointer;
}
div.panel_header_icon2 {
text-align: right;
float: right;
margin-left: 3px;
cursor: hand;
cursor: pointer;
}
答案 0 :(得分:5)
也许您可以使用Ext.Panel的headerCfg
配置选项:
...,
headerCfg: {
tag: 'div',
cls: 'x-panel-header',
children: [
{ tag: 'div', cls: 'my-title', 'html': 'Shopping Cart' },
{ tag: 'div', cls: 'my-status', 'html': 'Status: on <img src="status.png" />' }
]
},
...
必须在afterrender
事件中添加可点击行为,例如:
function(p) {
p.header.on('click', function(e, h) {
}, p, {
delegate: '.my-status',
stopEvent: true
});
}
当然,你需要一些CSS来标题标题...
答案 1 :(得分:3)
更简单似乎只是将html打入标题标签。
title: '<span style="cursor:help" title="' + strTitle + '">'
+ strTitle + '</span>',
在痛苦地搜索autoEl和标题解决方法之后,这至少在2.2上有效。