87,910
社区成员
发帖
与我相关
我的任务
分享
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
Ext.QuickTips.init();
Ext.apply(Ext.QuickTips.getQuickTip(),{
//maxWidth: 200,
//minWidth: 100,
//showDelay: 50,
//trackMouse: true,
//hideDelay: true,
//closable: true,
//autoHide: false,
//draggable: true,
dismissDelay: 0
});
var root = new Ext.tree.AsyncTreeNode({
text: 'C:',
draggable:false,
id:'\\'
});
Ext.onReady(function(){
// shorthand
var Tree = Ext.tree;
var tree = new Tree.TreePanel({
el:'tree-div',
useArrows:true,
autoScroll:true,
animate:true,
enableDD:true,
containerScroll: true,
// auto create TreeLoader
dataUrl: 'get-nodes.php',
root: root,
tbar : [{
text : "选择目录",
handler : function() {
getSelectedItems("Root",root);
}
}
]
});
tree.on('checkchange', function(node, checked) {
node.expand();
node.attributes.checked = checked;
node.eachChild(function(child) {
child.ui.toggleCheck(checked);
child.attributes.checked = checked;
child.fireEvent('checkchange', child, checked);
});
}, tree);
// render the tree
tree.render();
tree.getRootNode().expand();
});
//从根节点遍历整个tree, 把叶子列出来放在一个div里面,
function getSelectedItems(parentPath, _root){
if(_root){
for(var i in _root){
//alert(i + ": " + _root[i]);
}
var nodes = _root.childNodes;
//alert(nodes.length);
if(nodes.length==0){
return;
}
for(var i=0; i<nodes.length; i++){
if(nodes[i].attributes['checked']){
var div = document.createElement("div");
div.appendChild(document.createTextNode(parentPath + "\\" + nodes[i].text));
document.getElementById("selectedItems").appendChild(div);
}
if(!nodes[i].leaf){
//递归调用自己,以实现遍历
getSelectedItems(parentPath+ "\\" + nodes[i].text, nodes[i]);
}
}
}
var s = document.getElementById("selectedItems").innerText
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine(s);
a.Close();
alert("我已经在你的C盘根目录下生成了一个testfile.txt的文件!");
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Reorder TreePanel</title>
<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" />
<!-- GC -->
<!-- LIBS -->
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<!-- ENDLIBS -->
<script type="text/javascript" src="ext/ext-all.js"></script>
<script type="text/javascript" src="reorder.js"></script>
<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="ext/examples/shared/examples.css" />
</head>
<body>
<script type="text/javascript" src="ext/examples/shared/examples.js"></script><!-- EXAMPLES -->
<p>The js is not minified so it is readable. See <a href="reorder.js">reorder.js</a>.</p>
<div id="tree-div" style="overflow:auto; height:400px;width:250px;border:1px solid #c3daf9;"></div>
<br>
<div id="selectedItems" style="overflow:auto; height:400px;width:250px;border:1px solid #c3daf9;">
</body>
</html>
tbar : [{
text : "加载通讯录",
handler : function() {
getSelectedItems("Root",root);
}
}
]
for (var i = 0; i < nodes.length; ++i) {
var node = nodes[i];
var value = node.attributes['text'];
if (typeof value != 'undefined' && node.childNodes == null) {
values.push(value);
}
}
var nodes = tree.getChecked();
var values = new Array();
for (var i = 0; i < nodes.length; ++i){
var node = nodes[i];
var value = node.attributes['text'];
if (typeof value != 'undefined') {
values.push(value);
}
}
var root = null;;
Ext.onReady(function() {
root = new Ext.tree.TreeNode({
id : '0',
text : 'Root',
leaf : false,
checked: true
});
var level1 = new Ext.tree.TreeNode({
id : '01',
leaf : false,
text : 'Level 1 -1',
checked: true
});
level1.appendChild(new Ext.tree.TreeNode({
id : '011',
leaf : false,
text : 'Level 2 -1',
checked: true
}));
level1.appendChild(new Ext.tree.TreeNode({
id : '012',
leaf : false,
text : 'Level 2 -2',
checked: true
}));
level1.appendChild(new Ext.tree.TreeNode({
id : '013',
leaf : false,
text : 'Level 2 -3',
checked: false
}));
root.appendChild(level1);
root.appendChild(new Ext.tree.TreeNode({
id : '02',
leaf : true,
text : 'Level 1 -2',
checked: true
}));
var tree = new Ext.tree.TreePanel({
applyTo : 'tree-ct',
width : 568,
height : 300,
checkModel : 'cascade',
onlyLeafCheckable : true,
animate : false,
rootVisible : true,
autoScroll : true,
root : root
});
tree.getRootNode().expand();
getSelectedItems("Root",root);
});
//从根节点遍历整个tree, 把叶子列出来放在一个div里面,
function getSelectedItems(parentPath, _root){
if(_root){
var nodes = _root.childNodes;
if(nodes.length==0){
return;
}
for(var i=0; i<nodes.length; i++){
var div = document.createElement("div");
div.appendChild(document.createTextNode(parentPath + "\\" + nodes[i].text));
document.getElementById("selectedItems").appendChild(div);
if(!nodes[i].leaf){
//递归调用自己,以实现遍历
getSelectedItems(parentPath+ "\\" + nodes[i].text, nodes[i]);
}
}
}
}
<html>
<head>
<title>starting page</title>
<库文件需要你自己填上>
<script type="text/javascript" src="js/tree.js"></script>
<script type="text/javascript">
</script>
<style type="text/css">
</style>
</head>
<body>
<DIV id="tree-ct" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; OVERFLOW: auto; HEIGHT: 400px; BORDER-RIGHT-WIDTH: 0px"></DIV>
<div style="border: solid red 1px;" id="selectedItems"></div>
</body>
</html>