मैं extjs ग्रिड के लिए संदर्भ मेनू कैसे बना सकते हैं




grid contextmenu (4)

  1. एक नियंत्रक फ़ाइल बनाएँ
  2. एक दृश्य फ़ाइल बनाएँ

        init : function() {
            this.control(
    
                       'countrylist' : {
    
                            itemcontextmenu : this.contextMenuBox
    
                        }
                    });
            },
    
            contextMenuBox:function( view, record, item, index,  e, eOpts ){
    
    
    if(record.data.status=='Y'){
    
    var menu = Ext.create('Ext.menu.Menu',{
                items: [{
                            text: 'Do something'
                        }]
                        });
                        e.stopEvent();
                        menu.showAt(e.getXY());
    
    
            }
            else{
                var menu = Ext.create('Ext.menu.Menu',{
                items: [{
                            text: 'Don\'t'
                        }]
                        });
                        e.stopEvent();
                        menu.showAt(e.getXY());
    
    
            }
    
            },
    

https://code.i-harness.com

मैं पेड़ के लिए संदर्भ मेनू बना सकता हूं और 'contextmenu' ईवेंट से जुड़ा हूं। कोड:

contextMenu = new Ext.menu.Menu({
  items: [{
    text: 'Edit',
    iconCls: 'edit',
    handler: edit
  },...]
})

Ext.getCmp('tree-panel').on('contextmenu', function(node) {
  contextMenu.show(node.ui.getAnchor());
})

लेकिन मैं ग्रिड तत्वों के लिए संदर्भ मेनू कैसे बना सकता हूं?


Extjs4 के लिए, इसे अपने ग्रिड में जोड़ें:

listeners: {
  itemclick: function(view, record, item, index, e, options){
    menuContext.showAt(e.xy);
  }
}

उपरोक्त प्रदान किए गए एलन के समान मेनू संदर्भ के साथ।



सबसे पहले अपने संदर्भ मेनू को परिभाषित करें

mnuContext = new Ext.menu.Menu({
    items: [{
        id: 'do-something',
        text: 'Do something'
    }],
    listeners: {
        itemclick: function(item) {
            switch (item.id) {
                case 'do-something':
                    break;
            }
        }
    }
});

फिर वांछित घटना के लिए श्रोता बनाएँ। घटना के डिफ़ॉल्ट व्यवहार को रोकने के लिए याद रखना बहुत महत्वपूर्ण है ताकि आप इसे अपने आप से बदल सकें। यदि आप घटना को रोकते हुए ईवेंट को रोकने के लिए event.stopEvent () विधि को कॉल नहीं करते हैं तो ब्रोवर का डिफ़ॉल्ट संदर्भ मेनू आपके द्वारा किए गए कार्यों के बावजूद दिखाई देगा।

rowcontextmenu: function(grid, index, event){
     event.stopEvent();
     mnuContext.showAt(event.xy);
}