Я создал две панели вкладок, и каждая панель имеет сетку.
Прослушиватель для сетки A:
Ext.getCmp('AGrid').addListener("rowcontextmenu", function menus(grid, rowIndex, e) {
if (!grid.contextMenu) {
grid.contextMenu = new Ext.menu.Menu({
autoDestroy: false,
items: [{ id: 'view', text: 'View Content'}],
currentRowIndex: rowIndex,
listeners: {
itemclick: function (item) {
switch (item.id) {
case 'view':
viewEmailClick(grid.getStore().getAt(this.currentRowIndex).data);
break;
}
}
}
});
}
this.contextMenu.currentRowIndex = rowIndex;
e.stopEvent(); // this stops the browser context menu and allows the default grid
// show the row context menu here
this.contextMenu.showAt(e.xy);
});
Прослушиватель для сетки B:
Ext.getCmp('BGrid').addListener("rowcontextmenu", function menus(grid, rowIndex, e) {
if (!grid.contextMenu) {
grid.contextMenu = new Ext.menu.Menu({
autoDestroy: false,
items: [{ id: 'view', text: 'View Task'}],
currentRowIndex: rowIndex,
listeners: {
itemclick: function (item) {
switch (item.id) {
case 'view':
viewTicketClick(grid.getStore().getAt(this.currentRowIndex).data);
break;
}
}
}
});
}
this.contextMenu.currentRowIndex = rowIndex;
e.stopEvent(); // this stops the browser context menu and allows the default grid
// show the row context menu here
this.contextMenu.showAt(e.xy);
});
КогдаЯ щелкаю правой кнопкой мыши по ней, Сетка А работает нормально, а затем щелчок правой кнопкой мыши по сетке Б, меню rowcontext не работает (просто показывает маленькую серую точку).
После того, как я вернусь к сетке А и щелкните правой кнопкой мыши, на ней появятся дваrowcontext меню в сетке A:
Если я щелкну правой кнопкой мыши по сетке B и щелкну правой кнопкой мыши по сетке (ничего не отображается), после возврата к сетке B отобразится меню rowcontext, содержащее двасписки (обратный порядок) в сетке B.
Почему происходят подобные вещи?
Как правильно отобразить контекстное меню каждой строки сетки?