我花了过去 3 个小时试图在 Grid 内创建一个菜单(请参阅 img: Menu inside a grid)。但是对于我的生活,我无法handlers
在菜单内工作。
编辑(澄清):我希望在网格内的每个记录行上为操作图标留出更多空间。因此,为了创造额外的空间,我想onClick
在每个网格行内都有一个菜单(见图),这将允许我在下拉菜单中添加无限的操作图标。
我创建了这样的菜单(我认为这是不对的,但我不知道该怎么做):
ux.RGridPanel = Ext.extend(Ext.grid.GridPanel, {
newMenu: new Ext.menu.Menu({
id: 'mainMenu',
style: {
overflow: 'visible' // For the Combo popup
},
items: [
{
text: 'I like Ext',
checked: true // when checked has a boolean value, it is assumed to be a CheckItem
},
{
iconCls: 'sitemap_16',
text: 'Test 2',
tooltip: '',
handler: function(a,b){
console.log(this.ownerCt); //All this stuff is not working
console.log(a);
console.log( this.parent);
this.parent.showSelectDialog //This is what is causing me issues, this won't work.
}
},
[...]
]
});
我试图在里面调用一个处理程序RGridPanel
:
showSelectDialog: function(grid, rowIndex, colIndex) {}
我想在里面使用不错的方法,RGridPanel
所以我不需要传递参数。谁能指出我正确的方向来解决这个问题?!
编辑::: 我自己在里面使用它已经走得更远了GridPanel
:
loadMenu: function(){
return new Ext.menu.Menu({
scope:this,
id: 'mainMenu',
style: {
overflow: 'visible' // For the Combo popup
},
items: [
{
iconCls: 'sitemap_16',
text: 'Test 2',
handler:this.showSelectImportFileDialog, //this works, but it does not pass the required params
和
initComponent: function() {
this.newMenu = this.loadMenu();
在cog
图标上:
handler: function (view, record, el, i, e) {
view.newMenu.showAt(e.getXY());
},
我现在可以调用showSelectDialog
,但默认参数 ((grid, rowIndex, colIndex)
不起作用。因为我showSelectDialog
从菜单内部调用。