Jusqu'à 6.2, le menu contextuel sur une grille a bien fonctionné en faisantAffichage du menu sur le menu contextuel Extjs
itemcontextmenu: function (a,b,c,d, e) {
contextmenu.showAt(e.getXY());
}
Mais avec 6,5, le menu ne montre pas à la XY coordonnée donnée si le menu est affiché en dehors du menu contextuel. J'ai inclus un exemple ci-dessous. Quelqu'un a vu ce problème? J'ai essayé d'activer l'option d'animation aussi, mais le menu ne contraint pas dans le panneau, donc quand vous faites un clic droit en bas de la grille, le menu apparaît en bas en dessous du panneau.
Toute entrée est très apprécié
Exemple de travail
Faites un clic droit sur une ligne de grille
Menu contextuel montre où vous avez cliqué.
exemple non-travail
Cliquez sur le bouton Menu (menu affiche en dessous du bouton)
Faites un clic droit sur une ligne de grille
Le menu contextuel indique où il était affiché sous le bouton Menu au lieu de l'endroit où vous avez cliqué.
var mymenu = new Ext.menu.Menu({
items: [
// these will render as dropdown menu items when the arrow is clicked:
{text: 'Item 1', handler: function(){ alert("Item 1 clicked"); }},
{text: 'Item 2', handler: function(){ alert("Item 2 clicked"); }}
]
});
Ext.create('Ext.button.Split', {
renderTo: Ext.getBody(),
text: 'Menu Button',
menu: mymenu
});
Ext.create('Ext.data.Store', {
storeId: 'simpsonsStore',
fields:[ 'name', 'email', 'phone'],
data: [
{ name: 'Lisa', email: '[email protected]', phone: '555-111-1224' },
{ name: 'Bart', email: '[email protected]', phone: '555-222-1234' },
{ name: 'Homer', email: '[email protected]', phone: '555-222-1244' },
{ name: 'Marge', email: '[email protected]', phone: '555-222-1254' }
]
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{ text: 'Name', dataIndex: 'name' },
{ text: 'Email', dataIndex: 'email', flex: 1 },
{ text: 'Phone', dataIndex: 'phone' }
],
height: 200,
width: 400,
renderTo: Ext.getBody(),
listeners: {
scope: this,
itemcontextmenu: function (a,b,c,d,e){
e.stopEvent();
mymenu.showAt(e.getXY());
}
}
});
Cela va détruire le menu sur le premier spectacle. Que se passe-t-il si l'utilisateur souhaite afficher le menu une seconde fois? –
@EvanTrimboli lorsque le menu se cacher après 2 secondes, il détruit –
Droit, ce qui signifie qu'il ne peut plus être utilisé. –