ext树

[javascript] view plain copy

    <script type="text/javascript">  
            Ext.onReady(function()  
                {  
                    //树形结构  
                    //创建一棵树:  
                    var tree = new Ext.tree.TreePanel(  
                        {el:'tree'}//表示渲染的DOM的id.界面中有<div id = "tree"></div>相对应最后这棵树就出现在这个div位置上  
                    );  
                    //创建根节点:  
                    var root = new Ext.tree.TreeNode({text:'山东'});  
                    tree.setRootNode(root);//把根节点添加到树中  
                    tree.render();//对树进行渲染   
                    //添加枝叶  
                    var node1 = new Ext.tree.TreeNode({text:'济南'});  
                    var node11 = new Ext.tree.TreeNode({text:'市中区'});  
                    var node12 = new Ext.tree.TreeNode({text:'章丘市'});  
                    var node2 = new Ext.tree.TreeNode({text:'青岛'});  
                    var node21 = new Ext.tree.TreeNode({text:'黄岛区'});  
                    var node22 = new Ext.tree.TreeNode({text:'城阳区'});  
                    var node3 = new Ext.tree.TreeNode({text:'淄博'});  
                    var node31 = new Ext.tree.TreeNode({text:'沂源'});  
                    var node32 = new Ext.tree.TreeNode({text:'张店'});  
                    var node33 = new Ext.tree.TreeNode({text:'博山'});  

                    root.appendChild(node1);  
                    root.appendChild(node2);  
                    root.appendChild(node3);  

                    node1.appendChild(node11);  
                    node1.appendChild(node12);  

                    node2.appendChild(node21);  
                    node2.appendChild(node22);  

                    node3.appendChild(node31);  
                    node3.appendChild(node32);  
                    node3.appendChild(node33);  

                    root.expand(true,true);//加载后立即展开树  
                }  
            );  
        </script>  

这里写图片描述

<2>使用TreeLoader加载数据:

[javascript] view plain copy

    <html>  
        <head>  
            <meta http-equiv="Content-Type" content="text/html; charset=GB2312">  
            <title>Tree</title>  
            <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />  
            <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>  
            <script type="text/javascript" src="../../ext-all.js"></script>  
            <script type="text/javascript" src="localXHR.js"></script>  
            <script type="text/javascript">  
                Ext.onReady(function(){  
                    var tree = new Ext.tree.TreePanel(  
                        {  
                            el: 'tree',  
                            //TreeLoader完成数据转换和装配节点的功能  
                            loader: new Ext.tree.TreeLoader({dataUrl: '03-03.txt'})  
                        }  
                    );  
                    //Ext.tree.TreeNode换成Ext.tree.AsyncTreeNode实现异步加载效果  
                    var root = new Ext.tree.AsyncTreeNode({text:'CHINA'});   
                    tree.setRootNode(root);  
                    tree.render();  
                    //只展开第一层节点  
                    root.expand();  
                    //展开全部节点  
                    //root.expand(true,true);  
                }  
            );  
            </script>  
        </head>  
        <body>  
            <script type="text/javascript" src="../shared/examples.js"></script>  
            <div id="tree" style="height:300px;"></div>  
        </body>  
    </html>  

03-03.txt

[javascript] view plain copy

    [  
        {  
            text:'SHANDONG',  
            children:[  
                {text:'QINGDAO',leaf:true},  
                {  
                    text:'ZIBO',  
                    children:[  
                        {text:'ZHANGDIAN',leaf:true},  
                        {text:'YIYUAN',leaf:true}  
                    ]  
                },  
                {text:'JINAN',leaf:true}  
            ]  
        },  
        {text:'BEIJING',leaf:true}  
    ]  

注意:

下载localXHR.js:点击打开链接

这里写图片描述
<3>树的事件

[javascript] view plain copy

    //添加事件监听机制  
                    tree.on("expandnode",function(node){  
                        Ext.Msg.alert(node + "展开了");  
                    });  
                    tree.on("collapsenode",function(node){  
                        Ext.Msg.alert(node + "折叠了");  
                    });  
                    tree.on("click",function(node){  
                        Ext.Msg.alert("你单击了" + node);  
                    });  
                    tree.on("dblclick",function(node){  
                        Ext.Msg.alert("你双击了" + node);  
                    });  

alert() 无法触发双击事件。

这里写图片描述
<4>右键菜单

[javascript] view plain copy

    <html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
        <title>Ext Buttons</title>  
        <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css"/>  
        <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>  
        <script type="text/javascript" src="../../ext-all.js"></script>  
        <script type="text/javascript" src="../examples.js"></script>  
        <script type="text/javascript">  
            Ext.onReady(function()  
                {  
                    //树形结构  
                    //创建一棵树:  
                    var tree = new Ext.tree.TreePanel(  
                        {el:'tree'}//表示渲染的DOM的id.界面中有<div id = "tree"></div>相对应最后这棵树就出现在这个div位置上  
                    );  
                    //创建根节点:  
                    var root = new Ext.tree.TreeNode({text:'山东'});  
                    tree.setRootNode(root);//把根节点添加到树中  
                    tree.render();//对树进行渲染   
                    //添加枝叶  
                    var node1 = new Ext.tree.TreeNode({text:'济南'});  
                    var node11 = new Ext.tree.TreeNode({text:'市中区'});  
                    var node12 = new Ext.tree.TreeNode({text:'章丘市'});  
                    var node2 = new Ext.tree.TreeNode({text:'青岛'});  
                    var node21 = new Ext.tree.TreeNode({text:'黄岛区'});  
                    var node22 = new Ext.tree.TreeNode({text:'城阳区'});  
                    var node3 = new Ext.tree.TreeNode({text:'淄博'});  
                    var node31 = new Ext.tree.TreeNode({text:'沂源'});  
                    var node32 = new Ext.tree.TreeNode({text:'张店'});  
                    var node33 = new Ext.tree.TreeNode({text:'博山'});  

                    root.appendChild(node1);  
                    root.appendChild(node2);  
                    root.appendChild(node3);  

                    node1.appendChild(node11);  
                    node1.appendChild(node12);  

                    node2.appendChild(node21);  
                    node2.appendChild(node22);  

                    node3.appendChild(node31);  
                    node3.appendChild(node32);  
                    node3.appendChild(node33);  
                    //<1>制作自定义菜单  
                    var contextmenu = new Ext.menu.Menu(  
                        {  
                            id:'theContextMenu',  
                            items:[  
                                {  
                                    text:'添加',  
                                    handler:function(){  
                                        alert("还未实现添加功能");  
                                    }  
                                },  
                                {  
                                    text:'删除',  
                                    handler:function(){  
                                        alert("还未实现删除功能");  
                                    }  
                                },  
                                {  
                                    text:'修改',  
                                    handler:function(){  
                                        alert("还未实现修改功能");  
                                    }  
                                }  
                            ]  
                        }  
                    );  
                    //<2>绑定contextMenu事件  
                    tree.on('contextMenu',function(node,e){  
                        //防止浏览器弹出他默认的功能菜单  
                        e.preventDefault();  
                        //选中当前节点  
                        node.select();  
                        //在点击的位置弹出菜单  
                        contextmenu.showAt(e.getXY());  
                    });  
                }  
            );  
        </script>  
    </head>  
    <body>  
        <div id = "tree">  
        </div>  
    </body>  
    </html> 

这里写图片描述

<5>修改节点的默认图标

[javascript] view plain copy

    <html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
        <title>Ext Buttons</title>  
        <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css"/>  
        <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>  
        <script type="text/javascript" src="../../ext-all.js"></script>  
        <script type="text/javascript" src="../examples.js"></script>  
        <style type="text/css">  
            .x-tree-node-leaf .icon-male {  
                background-image: url(user_male.png)  
        }  
        </style>  
        <script type="text/javascript">  
            /* 
                每个树形结点都有icon和iconCls属性,他们负责指定结点的图标。 
                <1>使用icon属性: 
                    var node = new Ext.tree.TreeNode({text:'淄博',icon:'user_female.png'}); 
                <2>使用iconCls属性,我们还需要在HTML中添加对应的CSS定义。 
                    var node = new Ext.tree.TreeNode({text:'淄博',iconCls:'icon-male'}); 
                    <style type="text/css"> 
                        .x-tree-node-leaf .icon-male { 
                            background-image: url(user_male.png) 
                    } 
                    注意:x-tree-node-leaf .icon-male和代码中iconCls:'icon-male'相对应。 

        </style> 
            */  
            Ext.onReady(function()  
                {  
                    //树形结构  
                    //创建一棵树:  
                    var tree = new Ext.tree.TreePanel(  
                        {el:'tree'}//表示渲染的DOM的id.界面中有<div id = "tree"></div>相对应最后这棵树就出现在这个div位置上  
                    );  
                    //创建根节点:  
                    var root = new Ext.tree.TreeNode({text:'山东',icon:'user_male.png'});  
                    tree.setRootNode(root);//把根节点添加到树中  
                    tree.render();//对树进行渲染   
                    //添加枝叶  
                    var node3 = new Ext.tree.TreeNode({text:'淄博',icon:'user_female.png'});  
                    var node31 = new Ext.tree.TreeNode({text:'沂源',icon:'user_female.png'});  
                    var node32 = new Ext.tree.TreeNode({text:'张店',icon:'user_female.png'});  
                    var node33 = new Ext.tree.TreeNode({text:'博山',iconCls:'icon-male'});  

                    root.appendChild(node3);  

                    node3.appendChild(node31);  
                    node3.appendChild(node32);  
                    node3.appendChild(node33);  
                }  
            );  
        </script>  
    </head>  
    <body>  
        <div id = "tree">  
        </div>  
    </body>  
    </html>  

这里写图片描述

<6>从节点弹出对话框

[javascript] view plain copy

    tree.on('click',function(node){  
                        Ext.Msg.show(  
                            {  
                                title:'提示',  
                                msg:'你点击了'+node,  
                                animEl:node.ui.textNode  
                            }  
                        );  
                    });

这里写图片描述

<7>节点提示信息

[javascript] view plain copy

    <html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
        <title>Ext Buttons</title>  
        <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css"/>  
        <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>  
        <script type="text/javascript" src="../../ext-all.js"></script>  
        <script type="text/javascript" src="../examples.js"></script>  
        <script type="text/javascript">  

            /* 
                为每个节点添加qtip:'xxxx'属性。 
                在JavaScript中对Ext的提示功能进行初始化。Ext.QuickTips.init(); 
            */  
            Ext.onReady(function()  
                {  
                    Ext.QuickTips.init();  
                    //树形结构  
                    //创建一棵树:  
                    var tree = new Ext.tree.TreePanel(  
                        {el:'tree'}//表示渲染的DOM的id.界面中有<div id = "tree"></div>相对应最后这棵树就出现在这个div位置上  
                    );  
                    //创建根节点:  
                    var root = new Ext.tree.TreeNode({text:'山东'});  
                    tree.setRootNode(root);//把根节点添加到树中  
                    tree.render();//对树进行渲染   
                    //添加枝叶  
                    var node3 = new Ext.tree.TreeNode({text:'淄博',qtip:'中国历史文化名城,国家园林城市,中国瓷都。历史文化源远流长,曾作为山东政治中心近两千年,有“齐国故都”之称'});  
                    var node31 = new Ext.tree.TreeNode({text:'沂源',qtip:'沂源县是山东古人类发源地、山东屋脊生态高地、中国北方溶洞之乡和牛郎织女之乡'});  
                    var node32 = new Ext.tree.TreeNode({text:'张店'});  
                    var node33 = new Ext.tree.TreeNode({text:'博山'});  

                    root.appendChild(node3);  

                    node3.appendChild(node31);  
                    node3.appendChild(node32);  
                    node3.appendChild(node33);  
                }  
            );  
        </script>  
    </head>  
    <body>  
        <div id = "tree">  
        </div>  
    </body>  
    </html>

这里写图片描述

<8>为节点设置超链接

[javascript] view plain copy

    var node32 = new Ext.tree.TreeNode({text:'张店',href:'tree事件监听.html',hrefTarget:'_blank'});  

<9>直接修改树节点名称

[javascript] view plain copy

    //只要创建一个TreeEditor,再把TreePanel放进去就可以了。  
                    var treeEditor = new Ext.tree.TreeEditor(tree,{  
                        allowBlank:false  
                    });  

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值