【问题标题】:Handling itemclick event on tree panel Extjs 4处理树面板Extjs 4上的itemclick事件
【发布时间】:2011-08-30 23:11:44
【问题描述】:

我想要做的是在不同的树 LEAF 点击时获得不同的反应!

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) {  

}

请帮忙!!

【问题讨论】:

    标签: events extjs tree onclick extjs4


    【解决方案1】:

    Itemclick 处理程序已经为您提供所需的一切:

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

    【讨论】:

    • @ischenkodv 在我看来最好最干净的方法!
    【解决方案2】:

    itemclick 事件侦听器的函数参数“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},
    

    【讨论】:

    • 自定义参数呢?即使通过json发送到存储,我也无法获取例如参数s的表单记录?我怎样才能得到这个参数数据的孩子?
    • 我还需要知道如何访问自定义参数
    【解决方案3】:

    我试图做一个通用树形面板的项目点击处理程序,并能够获得我添加到节点对象的自定义字段。这帮助了我。我不知道这是否是标准且兼容的 ExtJs 4 方式:

                (Some Panels Here),
                items: [{
                    xtype: 'treepanel',
                    listeners: {
                        itemclick: {
    
                            fn: function (view, record, item, index, e) {
    
                                console.log(record.raw.userData);
                            }
                (removed...)
    

    【讨论】:

    • 我在找什么,谢谢!我需要它:record.raw :)
    • 我有{ text: 'SP Reports', id: 'SP', leaf: true, custom: 'Hello'} 如何访问自定义属性?
    猜你喜欢
    • 2014-06-29
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多