【ExtJs4.1】TreePanel获得选中叶子的id和文本

【ExtJs4.1】TreePanel获得选中叶子的id和文本

ExtJs只从更新以来,时时刻刻都在改变,例如,3.3用习惯了,4.0以后的也不一定很牛B,4.0以后的内容和思想有些已经生成,而有些却是强制这我们IT人的思想,3.3之间的获得Tree文本id方式:例如

tree.on("click",function(node,event){
       alert("您点击了"+node.text);
});

c1.on("click",function(node,event){
   alert("您点击了"+event.X);
});

而在4.0以后的方式如下,4.0以后使用了数据源的形式加载数据,而没有了treeLoader等方式,扩展了view而不知ui,

以下是4.1做的例子,获得id和文本

Ext.onReady(function(){ 
    // 创建一个树形控件的数据源store,4.1方式与之前版本用法不同
    var _store = Ext.create('Ext.data.TreeStore', {
        
        // 创建代理
    /*    proxy: {
              type: 'ajax',    // 代理类型
              method:"POST",    // 提交方式
              url: 'get-nodes.php'    //路径
        },*/
        root: {
            expanded: true,
            text:'树的根',
            children: [
                { text: "第一个节点"},
                { text: "第二个节点", expanded: true, 
                    children: [
                        { text: "第二个节点的第一个叶子", leaf: true ,id:'node1'},
                        { text: "第二个节点的第二个叶子", leaf: true}
                    ]},
                { text: "第三个节点的叶子", leaf: true }
            ]
        },
        folderSort: true,    // 排序
        sorters: [{
            property: 'text',
            direction: 'ASC'
        }]
    });
    
    // 创建一个属性面板
    var _tree=new Ext.tree.TreePanel({
        animate:true,    // 动画效果
        title:'我是一棵树',
        rootVisible:true,   // 是否显示根节点,默认为true。
        autoScroll:true,    // 自动滚动条,默认false
        height:600,
        border:true,        // 边框Number/String
        collapsible:true,    // 可收缩展开
        lines:true,            // 是否显示树线,默认为true
        userArrows:true,    // 是否在树中使用Vista样式箭头,默认为false
        store: _store,        //加载树形数据源
        renderTo: Ext.getBody(),
        
    
        // 视图配置项
        viewConfig: {
            plugins: {
                  ptype: 'treeviewdragdrop',    // 可以拖拽
                enableDrag:true,    // 拖拽
                enableDrop:true,         // 节点接受拖动
                appendOnly: true
            }
        },
        listeners: {
            //双击事件显示饼图
            'itemclick': {
                fn: function(view, record, item, index, e){
                    if (record.isLeaf()) {
                        var nodeId = record.raw.id;//获取点击的节点id
                        var nodeText = record.raw.text;//获取点击的节点text
                        alert(nodeId);
                    }
                },
            },
            'dblclick': {
                element: 'body',
                fn: function(view, record, item, index, e){ 
                    //alert('doubleclick');
                 }
            },
        
            //加载时获取链接
              'load':function(treestore, node, records, successful, options) {
                if(Ext.isEmpty(records)){
                      return;
                }
            }
        }
        //selModel: new Ext.tree.DefaultSelectionModel()    // 树的选择模式,默认为Ext.tree.DefaultSelectionModel
        //loader: new Ext.tree.TreeLoader()                    // 树节点的加载器,默认为Ext.tree.TreeLoader

    });

    // 西部,树形控件显示
    var grid_item = new Ext.Panel({              
        title: '功能菜单',      
        region: 'west',     // 方向        
        split: true,  // 分割符
        collapsible: true, // 可收缩展开
        width: 200,      
        minWidth:180,    // 最小
        maxWidth:300,    // 最大
        
        items:[
            _tree    // 增加一个树控件
        
        ]
    });  
      
    //中间  
    var center_item = new Ext.Panel({  
        title: '报表显示',  
        region: 'center',      // 方向
        collapsible: true    //折叠
    });  

    new Ext.Viewport({  
        layout: "border",  // border布局
        items: [ grid_item, center_item]  
    });  
      
});


未经允许请勿转载:程序喵 » 【ExtJs4.1】TreePanel获得选中叶子的id和文本

点  赞 (0) 打  赏
分享到: