要求生成一顆部門樹,初始只列出根部門 當點擊一個部門節點時,動態載入該部門下的直屬子部門,并展開該部門節點 部門節點要求支持右鍵單擊事件,當點擊右鍵時,列出相關操作菜單 二. 關鍵類

這里主要涉及Ext JS " /> 在线免费观看毛片,99久久精品互换人妻AV,忘忧草高清

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

利用Ext Js生成動態樹實例代碼

一. 需求

要求生成一顆部門樹,初始只列出根部門
當點擊一個部門節點時,動態載入該部門下的直屬子部門,并展開該部門節點
部門節點要求支持右鍵單擊事件,當點擊右鍵時,列出相關操作菜單
二. 關鍵類

這里主要涉及Ext JS的兩個類:

Ext.tree.TreeNode
Ext.menu.Menu
相關API可以參考:http://extjs.com/deploy/ext/docs/

三. 代碼示例

1. 先看一下測試頁面
復制代碼 代碼如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Reorder TreePanel</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="reorder.js"></script>


<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../shared/examples.css" />
<link rel="stylesheet" type="text/css" href="../shared/lib.css" />


<script type="text/Javascript">
/**************
onload事件
***************/
window.onload=function(){
createTree(3);
}
</script>


</head>
<body>
<script type="text/Javascript" src="../shared/examples.js"></script>
<h1>現在要生成一顆動態樹</h1>
<div id="container">
</div>
</body>
</html>

2. 再看一下生成樹的函數
復制代碼 代碼如下:
/***********************************
創建樹
by chb
************************************/
function createTree(n){


Ext.QuickTips.init();
var mytree=new Ext.tree.TreePanel({
el:"container",
animate:true,
title:"Extjs動態樹",
collapsible:true,
enableDD:true,
enableDrag:true,
rootVisible:true,
autoScroll:true,
autoHeight:true,
width:"30%",
lines:true
});

//根節點
var root=new Ext.tree.TreeNode({
id:"root",
text:"集團公司",
expanded:true
});


for(var i=0;i<n;i++){
var sub1=new Ext.tree.TreeNode({
id:i+1,
text:"子公司"+(i+1),
singleClickExpand:true,
listeners:{
//監聽單擊事件
"click":function(node){
myExpand(node);
},
//監聽右鍵
"contextmenu":function(node,e){
//列出右鍵菜單
menu=new Ext.menu.Menu([
{
text:"打開當前節點",
icon:"list.gif",
handler:function(){
myExpand(node);
}
},
{
text:"編輯當前節點",
icon:"list.gif",
handler:function(){
alert(node.id);
}
},
{
text:"刪除當前節點",
icon:"list.gif",
handler:function(){
alert(node.id);
}
}]);
//顯示在當前位置
menu.showAt(e.getPoint());
}
}
});
root.appendChild(sub1);
}
mytree.setRootNode(root);//設置根節點
mytree.render();//不要忘記render()下,不然不顯示哦
}

3. 展開子節點的代碼
復制代碼 代碼如下:
/******************************************
展開節點
******************************************/
function myExpand(node){
if(node.id=='1'){
if(node.item(0)==undefined){
node.appendChild(new Ext.tree.TreeNode({
id:node.id+'1',
text:node.text+"的第一個兒子",
hrefTarget:"mainFrame",
listeners:{//監聽
"click":function(node,e){
expand2(node)
}
}
}));
}


node.expand();


}else if(node.id=='2'){
node.appendChild(new Ext.tree.TreeNode({
id:node.id+'2',
text:node.text+"的第一個兒子",
hrefTarget:"mainFrame",
listeners:{//監聽
"click":function(node){
expand2(node)
}
}
}));
}else{
alert(node.id+"沒有子部門了");
}
}

讀者可以自己運行一下如上代碼,會發現如下現象:無論點擊“子公司1”多少次,只會列出“子公司1的第一個兒子”一個節點,而每點擊一次“子公司2”,就會多出一個“子公司2的第一個兒子”節點,這是為什么呢?

因為每次點擊都會激發myExpand函數,而“子公司1”上加了node.item(0)==undefined的判斷,這里明白了?
即:如果該部門下沒有子部門,則載入子部門,否則只展開,不重新載入。

好了,就到這里吧,困了,就不詳細解釋了o(∩_∩)o...哈哈

JavaScript技術利用Ext Js生成動態樹實例代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 中国农村妇女真实BBWBBWBBW | 亚洲欧美国产旡码专区 | 暖暖视频免费高清在线观看 视频 | 双性将军粗壮H灌满怀孕 | 被黑人掹躁10次高潮 | 超碰97免费人妻 | 午夜不卡久久精品无码免费 | 国产呻吟久久久久久久92 | 日日噜噜大屁股熟妇 | www.中文字幕在线观看 | 秋霞最新高清无码鲁丝片 | 国产不卡在线观看视频 | 国产高清超清在线播放 | qvod电影资源 | 日韩AV成人无码久久精品老人 | 同桌别揉我奶了嗯啊 | 亚洲视频无码中字在线 | 欧美麻豆一精品一AV一免费 | 乳女教师欲乱动漫无修版动画 | 真人做受120分钟免费看 | 翘臀后进美女白嫩屁股视频 | 新香蕉少妇视频网站 | 欧美一区二区视频97色伦 | 高中生高潮抽搐喷出白浆视频 | 成人小视频在线观看 | 忘忧草在线影院WWW日本动漫 | 久久精品国产亚洲AV妓女不卡 | 久久人妻少妇嫩草AV蜜桃35I | 高清视频在线观看SEYEYE | 久久精品无码一区二区日韩av | 法国剧丝袜情版h级在线电影 | 国产免费人成在线视频有码 | 亚洲伊人成综合人影院 | JK白丝校花爽到娇喘视频 | 玉娇龙续集春雪瓶txt免费阅读 | 国产AV国产精品国产三级在线L | 小玲被公扒开腿 | 97超碰射射射 | 涩涩伊人久久无码欧美 | 色人格影院第四色 | 精品久久伦理中文字幕 |