ExtJS网格中的上下文菜单

iyfamqjs  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(169)

我有一个两个上下文菜单项在我的网格。第一个是“删除”,第二个是禁用或启用。删除上下文菜单我已经添加如下

var contextMenu = Ext.create('Ext.menu.Menu', {
                controller: 'sites',
                width: 250,
                plain: true,
                items: [{
                    text: 'Delete',
                    handler: function () {
                    },      
                }]

现在,我想在项目中添加“禁用”或“启用”作为上下文菜单。启用或禁用意味着我需要检查网格中特定行的状态,即,如果该行的状态为启用,则“禁用”选项应出现在上下文菜单中,如果状态为禁用,则“启用”选项应出现在上下文菜单中。如何检查行的状态以及如何将if else条件放入我的项中?下面是检查行的启用情况的列。

columns: [
        {text:'Active',dataIndex:'enabled',flex:1 },
]
sz81bmfz

sz81bmfz1#

你可以使用actioncolumn来实现这一点。它在网格单元格中呈现一个图标,在那里你可以链接一个函数,这要归功于处理程序配置。
在这里可以使用record参数检查所选行是否处于活动状态,并有条件地呈现正确的选项;例如:

handler: function(view, rowIndex, colIndex, item, e, record, eOpts) {
  if (record.data.active) {
    openDisableMenu()
  } else {
    openEnableMenu()  
  }
}

相关问题