Extjs实现右键菜单

 
var sellAction = Ext.create('Ext.Action', {
        icon   : '../shared/icons/fam/delete.gif',  // Use a URL in the icon config
        text: 'Sell stock',
        disabled: true,
        handler: function(widget, event) {
            var rec = grid.getSelectionModel().getSelection()[0];
            if (rec) {
                alert("Sell " + rec.get('company'));
            } else {
                alert('Please select a company from the grid');
            }
        }
    });
    var buyAction = Ext.create('Ext.Action', {
        iconCls: 'buy-button',
        text: 'Buy stock',
        disabled: true,
        handler: function(widget, event) {
            var rec = grid.getSelectionModel().getSelection()[0];
            if (rec) {
                alert("Buy " + rec.get('company'));
            } else {
                alert('Please select a company from the grid');
            }
        }
    });

    var contextMenu = Ext.create('Ext.menu.Menu', {
        items: [
            buyAction,
            sellAction
        ]
    });

    // create the Grid
    var grid = Ext.create('Ext.grid.Panel', {
        store: store,
        columnLines: true,
        columns: [
            {
                text     : 'Company',
                flex     : 1,
                sortable : false,
                dataIndex: 'company'
            },
            {
                text     : 'Price',
                width    : 75,
                sortable : true,
                renderer : 'usMoney',
                dataIndex: 'price'
            },
            {
                text     : 'Change',
                width    : 75,
                sortable : true,
                renderer : change,
                dataIndex: 'change'
            },
            {
                text     : '% Change',
                width    : 75,
                sortable : true,
                renderer : pctChange,
                dataIndex: 'pctChange'
            },
            {
                text     : 'Last Updated',
                width    : 85,
                sortable : true,
                renderer : Ext.util.Format.dateRenderer('m/d/Y'),
                dataIndex: 'lastChange'
            }
        ],
        dockedItems: [{
            xtype: 'toolbar',
            items: [
                buyAction, sellAction
            ]
        }],
        viewConfig: {
            stripeRows: true,
            listeners: {
                itemcontextmenu: function(view, rec, node, index, e) {
                    e.stopEvent();
                    contextMenu.showAt(e.getXY());
                    return false;
                }
            }
        },
        height: 350,
        width: 600,
        title: 'Action Grid',
        renderTo: 'grid-example',
        stateful: false
    });

    grid.getSelectionModel().on({
        selectionchange: function(sm, selections) {
            if (selections.length) {
                buyAction.enable();
                sellAction.enable();
            } else {
                buyAction.disable();
                sellAction.disable();
            }
        }
    });



Extjs实现右键菜单

Extjs禁用右键
将下列代码加到Ext.on
Ready()中即可解决:
Ext.getDoc().on("contextmenu", function(e){
    e.stopEvent();
});
扩展:
Extjs右键菜单的区域选中实现
itemcontextmenu: function(view, rec, node, index, e) {
                e.stopEvent();
                //alert(node.localName);
                var t = node.firstChild.nextSibling.nextSibling;
                var x = 0;
                if ( t.offsetParent ) {
                    x += t.offsetLeft;
                }
                var y = 0;
                if ( t.offsetParent ) {
                    y += t.offsetTop;
                }
                var th=t.offsetHeight,tw=t.offsetWidth;
                alert("th:"+th+";tw:"+tw+";ex:"+e.getX()+";ey:"+e.getY()+";x:"+x+";y:"+y);
                if(x<e.getX() && e.getX()<(x+tw)&& y<(e.getY()-104)&&(e.getY()-104)<(y+th)){
                    if(store.getCount()-1!=index){
                        alert(x+";"+y);
                        contextMenu.showAt(e.getXY());
                    }
                }
                return false;
            }

--------------------------------

二、Ext选择对象的方法:

  选择html控件:Ext.getDom(对象的ID)

  选择EXT元素:Ext.get(对象的ID)     

  选择EXT组件:Ext.getCmp(对象的ID)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值