var tpl = new Ext.XTemplate(
'<tpl for=".">',
'<div class="thumb-wrap">',
'<img src="../images/warning.png" style="vertical-align: middle;" title="Warning">',
'<span class="x-editable" style="margin-left: 3px;">{text}</span></div>',
'</tpl>',
'<div class="x-clear"></div>'
);
var msg = store.proxy.lastDataTableObject.logMessages;
var topToolbar = this.gridPanel.topToolbar;
if (msg && msg.length > 0) {
//Warning Messages menu
topToolbar.insert(topToolbar.items.items.length - 1,{
text: "Warning Messages",
menu: {
xtype: 'menu',
autoScroll: true,
maxHeight: 200,
items: [
new Ext.DataView({
store: new Ext.data.SimpleStore({data: msg, fields: ['text']}),
tpl: tpl,
autoWidth: true,
multiSelect: true,
overClass: 'x-view-over',
itemSelector: 'div.thumb-wrap',
emptyText: 'No warnings to display'
})
]
}
});
topToolbar.doLayout();
我在里面用DataView制作了这个菜单。我的最终目标是添加maxHeight并使其成为下拉元素的右上角始终锚定在按钮元素的右下角。
此处发生的事情:
在固定高度的情况下,锚定的问题仍然存在,但至少菜单应该按原样下降:
答案 0 :(得分:1)
您可以使用工具栏按钮上的menuAlign
配置,其值为tr-br
,这会使您的元素(在您的情况下,菜单中)右上角与您的目标对齐&# 39; s(在你的情况下,按钮)右下角。
if (msg && msg.length > 0) {
topToolbar.insert(topToolbar.items.items.length - 1,{
text: "Warning Messages",
menuAlign: 'tr-br', // Add this line here
menu: {
xtype: 'menu',
...
}
});
topToolbar.doLayout();
}
根据您的代码,您可以working example on Sencha's fiddle site进行参考。