2011-05-23 17 views
7

जो मैं करने की कोशिश कर रहा हूं वह है कि एक अलग पेड़ पर अलग प्रतिक्रिया प्राप्त करें एलआईएफ क्लिक करें!पेड़ पैनल पर आइटमक्लिक घटना को संभालना Extjs 4

var myTree = Ext.create('Ext.tree.Panel', 
    store: store, 
    rootVisible: false, 
    border: false, 
    listeners: { 
     itemclick: function(index) {    
      var record = store.getAt(index); 
      alert(record);   
     } 
    } 
}); 

मैंने पत्ते की अनुक्रमणिका प्राप्त करने के लिए सूचकांक के साथ प्रयास किया, कुछ भी नहीं। मैं नोड क्लिक पर प्रतिक्रिया प्राप्त कर सकता हूं, लेकिन प्रत्येक पत्ते पर एक विशिष्ट प्रतिक्रिया कैसे प्राप्त करें? मैंने पत्तियों को आईडी देने की भी कोशिश की, कोई भाग्य नहीं ???

शायद

itemclick: function(Ext.view.View this, Ext.data.Model record, HTMLElement item, Number index, Ext.EventObject e) { 

} 

Pleeasse मदद का एक सरल उदाहरण !!

उत्तर

10

itemclick घटना श्रोता के समारोह परम "अनुक्रमणिका" अपने पेड़ नोड के सूचकांक को इंगित नहीं करता है। जैसे आप अपने प्रश्न के अंत में उल्लेख किया itemclick घटना के लिए वाक्य रचना है:

function(Ext.view.View this, Ext.data.Model record, HTMLElement item, Number index, Ext.EventObject e) { 

} 

यहाँ एक उदाहरण है:

itemclick : function(view,rec,item,index,eventObj) { 

    // You can access your node information using the record object 
    // For example: record.get('id') or record.get('some-param') 
    if(r.get('id')=='SP') { 
     // I do my necessary logic here.. may be open a perticular window, grid etc.. 
    } 

    if(r.get('id')=='CO') { 
     // I do my necessary logic here.. may be open a perticular window, grid etc.. 
    }   
} 

और यहाँ मेरी पेड़ नोड के डेटा का एक उदाहरण है:

{ text: 'SP Reports', id: 'SP', leaf: true}, 
{ text: 'CO Reports', id: 'CO', leaf: true}, 
+0

कस्टम पैरामीटर के बारे में क्या? उदाहरण के लिए मुझे फॉर्म रिकॉर्ड नहीं मिल सकता है, अगर यह जेसन द्वारा स्टोर करने के लिए भेजा गया हो तो भी? मैं पैरामीटर डेटा के इस बच्चे को कैसे प्राप्त कर सकता हूं? –

+0

मुझे यह भी जानने की जरूरत है कि कस्टम पैरामीटर – Awalias

6

Itemclick हैंडलर से मिलने वाली आप everyting की जरूरत है:

itemclick(view, record, item, index, e) { 
    var id = record.get('id'); 
    // do something depending on the record data. 
    // console.log(record); 
} 
+0

@Abdel Olakara आपको बहुत धन्यवाद, मैंने कोशिश की, काम करता है !!!! –

+0

@ischenkodv मेरी आंखों में सबसे अच्छा और साफ दृष्टिकोण! – Chris

3

मैं एक सामान्य वृक्षारोपण के आइटम क्लिक हैंडलर करने की कोशिश कर रहा था और एक कस्टम फ़ील्ड प्राप्त करने में सक्षम होने के लिए मैंने नोड ऑब्जेक्ट में जोड़ा। इससे मुझे मदद मिली। मुझे पता नहीं है कि यह मानक और संगत ExtJs 4 तरीका है:

  (Some Panels Here), 
      items: [{ 
       xtype: 'treepanel', 
       listeners: { 
        itemclick: { 

         fn: function (view, record, item, index, e) { 

          console.log(record.raw.userData); 
         } 
      (removed...) 
+1

का उपयोग कैसे करें, धन्यवाद, धन्यवाद! मुझे इसकी आवश्यकता थी: record.raw :) –

+0

मेरे पास '{text: 'SP रिपोर्ट्स', आईडी: 'एसपी', पत्ता: सत्य, कस्टम: 'हैलो'} 'मैं कस्टम प्रॉपर्टी का उपयोग कैसे करूं? – Awalias

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^