2
ExtJSグリッドでcontextmenuを使用しています。それは正しかった。私の問題は、右クリックしてメニューが表示されているときです。グリッド行を変更すると、コンテキストメニューが消えません。なぜこれが起こっているExtJsグリッドからContextMenuが消えない
私のコード
Ext.application({
name: 'Fiddle',
launch: function() {
var grid = Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody(),
width: 400,
height: 500,
title: 'itemcontextmenu',
store: {
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": ""
}
]
},
columns: [
{
text: 'Name',
dataIndex: 'name',
flex: 1
}
],
listeners:[
{
rowclick: function(a , record , element , rowIndex , e , eOpts) {
debugger;
if (rowIndex == 1)
{
alert("Hello");
}
else if (rowIndex == 2)
{
alert("Maddy");
}
}
}
]
});
var contextMenu = Ext.create('Ext.menu.Menu', {
width: 200,
items: [
{
text: 'Preview',
handler: function() {
var record = grid ? grid.getSelection()[0] : null;
if (!record)
{
return;
}
alert(record.get('name'));
}
}
]
});
grid.on("itemcontextmenu", function(grid, record, item, index, e) {
e.stopEvent();
contextMenu.showAt(e.getXY());
});
}
});
は誰が、私に説明していただけますか?私の作業フィドル再現するhere
ステップ:
- は、右の行1をクリックして、あなたは、行2をクリックして今すぐメニュー
- でプレビューを取得します。理想的にはプレビューは消えるべきですが、それは起こっていません。
この回答ありがとうございます – David