一个Ext Tree例子

Posted on 2008-12-12 10:39 Robert Su 阅读(11877) 评论(1)  编辑  收藏 所属分类: Ajax
一个树形菜单静态化到客户端成一个数组的测试js:
var tree_arr=[[1,'新浪播客','0'],[2,'tom','0'],[3,'网易播吧','0'],[4,'新浪播客子博客1','1'],[5,'新浪播客子博客2','1']];

var root=new Ext.tree.TreeNode({
      id:
"root",
      text:
"控制面板",
      expanded:
true
});
var mytree=new Ext.tree.TreePanel({
      el:
"tree",
     
      animate:
true,
      title:
"Extjs静态树",
      collapsible:
true,
      enableDD:
false,
      enableDrag:
false,
      rootVisible:
true,
      autoScroll:
true,
      trackMouseOver:
false,//false则mouseover无效果
      useArrows:false,
      width:
150,
      lines:
true 
  });
function get_root()
{
    
var result=new Array();
    
/*
    for(var i=0; i<tree_arr.length; i++)
        if(0 == tree_arr[i][2])
           root.appendChild(new Ext.tree.TreeNode({
                  id:tree_arr[i][0],
                 text:tree_arr[i][1]
         }));
    
*/
    
var j=0;                
     
for(var i=0; i<tree_arr.length; i++){
     
if(0 == tree_arr[i][2]){
     result[j
++]=tree_arr[i];
         }
     }
    
return result;
}
function get_sub(parentId)
{
    
var result=new Array();
    
/*
    for(var i=0; i<tree_arr.length; i++){
        if(0 != tree_arr[i][0]){
            //var temp=Ext.tree.getNodeById(tree_arr[i][0]);
            alert(mytree.getNodeById('1'));
            mytree.getNodeById('1').appendChild(new Ext.tree.TreeNode({
                  id:tree_arr[i][0],
                 text:tree_arr[i][1]
                             }));
        }    
    }
    
*/
    
var j=0;
    
for(var i=0; i<tree_arr.length; i++){
    
if(parentId==tree_arr[i][2]){
    result[j]
=tree_arr[i];
    j
++;
    }
    }
    
return result;
}


//生成标签页
var tab = new Ext.TabPanel({
            region:'center',
            deferredRender:
false,
            activeTab:
0,
            resizeTabs:
true// turn on tab resizing
            minTabWidth: 115,
            tabWidth:
135,
            enableTabScroll:
true
        });

Ext.onReady(
function(){
   
//layout
   var viewport = new Ext.Viewport({
        layout:'border',
        items:[
            
new Ext.BoxComponent({
                region:'north',
                el: 'north',
                height:
80
            }),
new Ext.BoxComponent({
                region:'south',
                el: 'south',
                height:
25
            }),{
            region:'west',
            id:'west
-panel',
            split:
true,
            width: 
200,
            minSize: 
175,
            maxSize: 
400,
            margins:'
0 0 0 0',
            layout:'accordion',
            title:'系统菜单',
            collapsible :
true,
            layoutConfig:{
                animate:
true
                },
            items: [
                {
                    title:'EXT控件使用',
                    border:
false,
                    html:'
<div id="tree-div" style="overflow:auto;width:100%;height:100%"></div>'
                    
//iconCls:'nav'
                }]
            },
        tab
//初始标签页
         ]
    });

    
//设置树形面板
    var Tree = Ext.tree;
    
// set the root node
    var root = new Tree.AsyncTreeNode({
        text: 'Ext JS',
        draggable:
false,
        id:'root'
    });

var resultRoot=get_root();
for(var i=0;i<resultRoot.length;i++){
    
var rootNode=new Ext.tree.TreeNode({
                  id:resultRoot[i][
0],
                 text:resultRoot[i][
1]
         });
 
var resultSub=get_sub(resultRoot[i][0]);
 
for(var j=0;j<resultSub.length;j++){
    
var subNode=new Ext.tree.TreeNode({
                  id:resultSub[i][
0],
                 text:resultSub[i][
1]
         });
     rootNode.appendChild(subNode);
 }    
  root.appendChild(rootNode);
}                    

var contextmenu=new Ext.menu.Menu({
    id:'Context',
    items:[{
        text:'R_menu1',
        handler:
function(){
            alert('click');
        }
    }
    ]
    
});    

mytree.on('contextmenu',
function(node,e){
    e.preventDefault();
    node.select();
    contextmenu.showAt(e.getXY());
});    
    
mytree.setRootNode(root);
//设置根节点
mytree.render();


});
Ext.fly(A) is null 开始的时候一直提示这个错误~
后来发现firebug一直提示这个错误,每次调试的时候清空下cache比较好~~~

Feedback

# re: 一个Ext Tree例子  回复  更多评论   

2009-04-20 17:46 by ads
http://ppw308593.14.112idc.com/read.php?tid=2

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 103, comments - 104, trackbacks - 0, articles - 5

Copyright © Robert Su