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  
                    });  

這裏寫圖片描述

發佈了20 篇原創文章 · 獲贊 7 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章