7

私がやろうとしているのは、別のツリーで別の反応を得ることです。リーフクリック!

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

葉のインデックスを取得するために、インデックスを試してみましたが、何もありません。ノードクリックで反応を得ることができますが、すべての葉で特定の反応を得るにはどうすればよいですか?私も葉にIDを付けてみましたが、運が悪かったですか?

多分簡単な例

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

}

Pleeasseヘルプ!!

4

3 に答える 3

10

イベントリスナーのitemclick関数param"index"は、ツリーノードのインデックスを指していません。質問の最後で述べたように、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},
于 2011-05-23T09:24:34.347 に答える
6

Itemclickハンドラーは、必要なものすべてをすでに提供しています。

itemclick(view, record, item, index, e ) {
    var id = record.get('id');
    // do something depending on the record data.
    // console.log(record);
}
于 2011-05-23T09:23:58.827 に答える
3

一般的なツリーパネルのアイテムクリックハンドラーを実行して、ノードオブジェクトに追加したカスタムフィールドを取得できるようにしようとしていました。これは私を助けました。これが標準で互換性のあるExtJs4の方法であるかどうかはわかりません。

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

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

                            console.log(record.raw.userData);
                        }
            (removed...)
于 2011-09-02T11:01:41.813 に答える