最近在學習Ext4,記錄一些有關Ext4實現控制項的方法:
Ext4的treePanel和之前3x的版本有一些差別。使用的版本是ext-4.0.7-gpl
html部分:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>無標題文檔</title><link type="text/css" rel="stylesheet" href="css/index.css" /><link type="text/css" rel="stylesheet" href="resources/css/ext-all.css" /><script type="text/javascript" language="javascript" src="ext-all.js"></script><script type="text/javascript" language="javascript" src="locale/ext-lang-zh_CN.js"></script><script type="text/javascript" language="javascript" src="js/index.js"></script></head><body><div id="subMenu"></div></body></html>
js部分:
Ext.onReady(function(){Ext.define('Task', {extend: 'Ext.data.Model',fields: [{name: 'id', type: 'string'},{name: 'text', type: 'string'}],});var store = Ext.create('Ext.data.TreeStore',{model: 'Task',proxy: { type: 'ajax', url: 'treegrid.json'//必須要搭建個伺服器才可以訪問json,不然會報錯。拒絕訪問 },reader: { type: 'json' },root: { text: 'root', id: '0', }});var menuTree = Ext.create('Ext.tree.Panel',{title: '使用者管理',autoScroll:true, width: "100%",height: "100%", store: store, rootVisible: true, renderTo: 'subMenu', listeners : {'itemclick' : function(view,record){if(record.data.leaf){alert(record.data.id);}else{if(record.data.expanded){view.collapse(record);}else{view.expand(record);}}}}});menuTree.store.load();});
json資料來源:
{ id:'1', text:'treenode 1', expanded:true, children:[{ id:'11', text:'treenode 11', leaf:true },{ id:'12', text:'treenode 12', expanded:true, children:[{ id:'121', text:'treenode 121', leaf:true },{ id:'122', text:'treenode 122', leaf:true }] },{ id:'13', text:'treenode 13', leaf:true }]}
一個簡單的treepanel就出現了,至於一些拓展功能,如複選樹,修改,編輯,拖動等功能,可以參照API來實現。