EXT Tree 的简单使用方法

根据小道消息,公司要在原来产品基础上,引用AJAX框架 EXT,所以最近闲来没事的时候,小小研究了一下,特此拿来与大家分享,不多废话,看代码asd

reorder.js 文件的代码:

/*

 * Ext JS Library 1.0.1

 * Copyright(c) 2006-2007, Ext JS, LLC.

 * licensing@extjs.com

 * 

 * http://www.extjs.com/license

 */



Ext.onReady(function(){

    // shorthand

    var Tree = Ext.tree;

	

//关于TreeLoader的原始API定义,来自EXT DOC

//	Ext.tree.TreeLoader = function(config){

//		this.baseParams = {};

//		this.requestMethod = "POST";

//		Ext.apply(this, config);

//		

//		this.addEvents({

//			"beforeload" : true,

//			"load" : true,

//			"loadexception" : true

//		});

//	};

	

	//定义一个Loader,设置他的后台php页面为get-nodes.php

	var myTreeLoader = new Tree.TreeLoader({dataUrl: 'get-nodes.php'});

	//为Loader添加一个事件,目的是用于树与后台交互的时候传递我想要的参数	

	myTreeLoader.on("beforeload", function(treeLoader, node) {

	//这里我传递了两个参数,一个是该节点的ID,一个是该节点显示的文本

    	treeLoader.baseParams.node_id = node.id;

		treeLoader.baseParams.node_text = node.text;

    	//appParams.pzuserdm=node.attributes.text;

	});

    

	//这里实例化咱具体想要的那种类型的tree,EXT提供很多种不同的tree

	//咱刚开始学,搞个简单的玩玩先

    var tree = new Tree.TreePanel('tree-div', {

//下面是对咱的TreePanel属性的一些设置

//俺的英文也不怎么好,所以还是不出来献丑了,直接把DOC的内容COPY过来好了							  

//animate

//animate : Boolean

//true to enable animated expand/collapse

//This config option is defined by TreePanel.

        animate:true,

		

//containerScroll

//containerScroll : Boolean

//true to register this container with ScrollManager

//This config option is defined by TreePanel.

        loader:myTreeLoader,



//enableDD

//enableDD : Boolean

//true to enable drag and drop

//This config option is defined by TreePanel.

        enableDD:true,



//loader

//loader : Boolean

//A TreeLoader for use with this TreePanel

//This config option is defined by TreePanel.

 

        containerScroll: true

    });



//给树定义一个单击事件,其实本例中没什么用,俺这么写是为了调试方便,呵呵~~

	tree.on('click', function(node, event) {

		//alert(this.loader.dataUrl);

		//alert(node.text);

	});





//定义树的根节点

    var root = new Tree.AsyncTreeNode({

        text: '公司总部图',

        draggable:false,

        id:'-100'

    });

    tree.setRootNode(root);



    // render the tree

    tree.render();

    root.expand();

});
 
 
reorder.html 代码如下
 
<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/yui/yui-utilities.js"></script>

	<script type="text/javascript" src="../../adapter/yui/ext-yui-adapter.js"></script>

	<script type="text/javascript" src="../../ext-all.js"></script>

	<script type="text/javascript" src="reorder.js"></script>

	</script>

	<link rel="stylesheet" type="text/css" href="../examples.css" />

</head>

<body>

<script type="text/javascript" src="../examples.js"></script>

<div id="tree-div" style="overflow:auto; height:300px;width:250px;border:1px solid #c3daf9;"></div>

</body>

</html>
get-nodes.php 代码 就不写这里了。。。单开一篇写,彻底拜服于 FCK~~~ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ STL 中的 `tree` 是一个非标准的容器,需要使用第三方库 `GCC-Tree` 才能使用。下面是一个简单的例子,演示如何使用 `tree` 存储一组整数,并对其进行遍历和查找操作: ```c++ #include <iostream> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; int main() { ordered_set s; s.insert(10); s.insert(20); s.insert(30); s.insert(40); s.insert(50); cout << "size = " << s.size() << endl; cout << "s[1] = " << *s.find_by_order(1) << endl; cout << "s[2] = " << *s.find_by_order(2) << endl; cout << "s.rank(30) = " << s.order_of_key(30) << endl; cout << "s.rank(40) = " << s.order_of_key(40) << endl; for (auto x : s) { cout << x << " "; } return 0; } ``` 输出结果为: ``` size = 5 s[1] = 20 s[2] = 30 s.rank(30) = 2 s.rank(40) = 3 10 20 30 40 50 ``` 在这个例子中,我们首先定义了一个 `ordered_set` 类型的变量 `s`,它是一个存储整数类型元素的 `tree` 容器。然后,我们向 `s` 中插入了一些元素,使用 `size` 函数查看容器中元素的个数,使用 `find_by_order` 函数查找元素,使用 `order_of_key` 函数查找元素在容器中的排名,最后使用一个 for 循环遍历容器中的元素并输出。 需要注意的是,`tree` 是一个非标准的容器,使用时需要在编译选项中添加 `-std=c++11 -D_GLIBCXX_DEBUG`。此外,`tree` 容器的功能与 `set` 和 `map` 类似,但是由于 `tree` 使用的是红黑树,因此插入和删除操作的时间复杂度要比 `set` 和 `map` 高一些,但是查找操作的时间复杂度相对较低。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值