茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    JavaScript的ExtJS框架中數(shù)面板TreePanel的使用實例解析
    來源:易賢網(wǎng) 閱讀:1199 次 日期:2016-06-25 14:02:16
    溫馨提示:易賢網(wǎng)小編為您整理了“JavaScript的ExtJS框架中數(shù)面板TreePanel的使用實例解析”,方便廣大網(wǎng)友查閱!

    TreePanel為ExtJS提供了一個方便的樹結(jié)構數(shù)據(jù)展示,尤其是在處理JSON格式數(shù)據(jù)時十分常用,接下來我們就來看兩則JavaScript的ExtJS框架中數(shù)面板TreePanel的使用實例解析

    在ExtJS中,不管是葉子節(jié)點還是非葉子節(jié)點,都統(tǒng)一用TreeNode表示樹的節(jié)點。在ExtJS中,有兩種類型的樹節(jié)點。一種節(jié)點是普通的簡單樹 節(jié)點,由Ext.tree.TreeNode定義,另外一種是需要異步加載子節(jié)點信息的樹節(jié)點,該類由Ext.tree.AsyncTreeNode定 義。

    在數(shù)據(jù)中, text 顯示文字, leaf 節(jié)點 , children 子節(jié)點,expanded 展開

    var store = Ext.create(‘Ext.data.TreeStore', {

    root: {

    expanded: true,

    children: [

    { text: “留學”, leaf: true },

    { text: “功課”, expanded: true, children: [

    { text: “英語”, leaf: true },

    { text: “代數(shù)”, leaf: true}

    ] },

    { text: “托?!? leaf: true }

    ]

    }

    });

    TreePanel從servlet中讀取JSON數(shù)據(jù)

    在Ext JS的Tree中的數(shù)據(jù)往往是從服務器端的動態(tài)程序中獲取的。

    為了獲取數(shù)據(jù),我們可以先編寫一個返回JSON的Servlet共前臺的樹形組建訪問:

    服務器端servlet代碼:

    import java.io.IOException;

    import java.io.PrintWriter;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    public class TreeNodeServlet extends HttpServlet {

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("text/html;charset=utf-8");

    //這里的node是前臺的AsyncTreeNode組建中設置的ID,見下面的JS程序

    String treeNode = request.getParameter("node");

    String json = "";

    PrintWriter out = response.getWriter();

    if("0".equals(treeNode)) {

    json+="[{id:1,text:'0-1'},{id:2,text:'0-2'}]";

    }

    else if("1".equals(treeNode)) {

    json+="[{id:11,text:'0-1-1',leaf:true},{id:12,text:'0-1-2',leaf:true}]";

    }

    else if("2".equals(treeNode)) {

    json+="[{id:21,text:'0-2-1'},{id:22,text:'0-2-2',leaf:true}]";

    }

    else if("21".equals(treeNode)) {

    json+="[{id:211,text:'0-2-1-1',leaf:true},{id:212,text:'0-2-1-2',leaf:true}]";

    }

    out.write(json);

    }

    }

    現(xiàn)在就可以在前臺的TreePanel組建的loader方法中訪問上面創(chuàng)建的servlet了,代碼如下:

    客戶端顯示代碼

    Ext.onReady(function(){

    var tree = new Ext.tree.TreePanel({

    //這里的div-tree是在html中創(chuàng)建的一個對象的id值

    el: 'div-tree',

    //使用loader方法訪問TreeNodeServlet

    loader: new Ext.tree.TreeLoader({dataUrl:'../TreeNodeServlet'})

    });

    var root = new Ext.tree.AsyncTreeNode({id:'0',text:'0'})

    tree.setRootNode(root);

    tree.render();

    root.expand();

    });

    效果圖如下:

    名單

    在樹TreePanel之間拖放結(jié)點

    有時候我們在程序中,需要把一棵TreePanel的元素拖放到另外一棵TreePanel中,如果是在同一棵樹中拖動時設置組件的enableDD參數(shù)為true,而現(xiàn)在需要在不同給的書之間拖動元素,這個時候就可以設置組件的enableDrag和enableDrop參數(shù),詳細示例如下:

    1.編寫JS代碼:

    JS代碼

    Ext.onReady(function(){

      var tree1 = new Ext.tree.TreePanel({

        el: 'tree1',

     //這里設置enableDrag為true表示可以從這里拖動元素到別處

        enableDrag:true,

        loader: new Ext.tree.TreeLoader({dataUrl: 'treeData1.txt'})

      });

      var tree2 = new Ext.tree.TreePanel({

        el: 'tree2',

     //這里設置enableDrop為true表示可以在這棵樹中放置拖動過來的元素

        enableDrop:true,

        loader: new Ext.tree.TreeLoader({dataUrl: 'treeData2.txt'})

      });

      var root1 = new Ext.tree.AsyncTreeNode({text:'跟節(jié)點'});

      var root2 = new Ext.tree.AsyncTreeNode({text:'圖書'});

      tree1.setRootNode(root1);

      tree2.setRootNode(root2);

      tree1.render();

      tree2.render();

    });

    2.HTML代碼如下:

    HTML代碼

    <div id="tree1"></div>

    <div id="tree2"></div>

    3.編寫兩個TreeLoader需要裝載的txt文件,里面的數(shù)據(jù)為JSON格式:

    treeData1.txt:

    [

        {text:'非葉子結(jié)點'},

        {text:'葉子結(jié)點',leaf:true}

    ]

    treeData2.txt:

    [

      {text:'計算機',children:[

        {text:'Java',children:[

          {text:'Java核心技術',leaf:true},

          {text:'Thinking in Java',leaf:true}

        ]},

        {text:'算法導論',leaf:true}

      ]},

      {text:'音樂',children:[

        {text:'樂理基礎',leaf:true},

        {text:'卡爾卡西古典吉他教程',leaf:true}

        ]}

    ]

    4.程序效果如下圖所示:

    名單

    更多信息請查看網(wǎng)絡編程

    2026上岸·考公考編培訓報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)