2010-12-16 177 views
10

Je voudrais savoir comment mettre un menu contextuel Extjs (clic droit) sur un bouton.Menu contextuel Extjs (clic droit) sur un bouton

J'ai cherché google mais tout ce que je semble obtenir est de savoir comment le mettre sur un TreePanel. J'ai essayé une approche similaire au TreePanel avec des boutons mais sans chance.

Répondre

24

Le menu contextuel est un menu flottant, il suffit donc de saisir l'événement du menu contextuel et d'afficher le menu. Étant donné que le bouton n'a pas le contextmenu vous pouvez saisir directement le HTMLElement (ou l'emballage Element) et écouter l'événement contextmenu

exemple:

contextMenu = new Ext.menu.Menu({ 
    items: [{ 
    text: 'Edit', 
    iconCls: 'edit', 
    handler: edit 
    }] 
}); 

Ext.getCmp('your-button').getEl().on('contextmenu', function(e) { 
    e.preventDefault(); 
    contextMenu.show(Ext.getCmp('your-button').getEl()); 
}); 
+0

Merci! J'essayais de le mettre sur le contextMenu: function() {} qui semblait me causer du chagrin – neolaser

+1

Est-il possible de positionner le menu à la même position que le clic-droit a été fait? – kiltek

+1

@kiltek je sais que c'est vieux, eu le même problème, corrigé comme ceci 'contextMenu.showAt (e.getXY());' – weeksdev