`

Ext动态异步树的构建格式

阅读更多
Ext.onReady(function(){
// 开启表单提示
	Ext.QuickTips.init();
	// 设置提示信息位置为边上
	Ext.form.Field.prototype.msgTarget = 'side';
	// 树
	NavTree = function() { // navTree类
		var nav;
		var loader;
		var root;
		var leafMenu;
		var dirMenu;
		return {
			init : function() {
				if (!loader) {
					loader = new Ext.tree.TreeLoader({ // 实例化loader
						// TreeLoader
						url : "../../marketrisk/relativerisk/queryTreeData.action"
					});
					loader.on('beforeload', function(treeloader,node) {// 设置参数
								treeloader.baseParams = {
									id :node.id,
									pid:node.parentNode==null ?'' :node.parentNode.id,
									method : 'tree'
								};
							}, this);

				}
				if (!root) {
					root = new Ext.tree.AsyncTreeNode({// 实例化 根节点root
						id : '-1',
						text : "委托人树"
					});
				}
				if (!nav) {
					nav = new Ext.tree.TreePanel({ // 实例化 树面板nav
						title : "委托人树",
						width : 300,
						autoScroll : true,
						animate : true,
						id:'ptree',
						height:550,
						loader : loader,// 加入loader
						root : root, // 加根节点进来
						//checkModel:"cascade",
						checkModel:'cascade',
						listeners: {  
								'dblclick':function(node,e){
										if(!node.isLeaf()){
											return;
										}
										var nodeid=node.id;
										var porids = nodeid.split(",");
										var proids = node.parentNode.id.split(",");
										var proname=node.parentNode.text;
										
										Ext.getBody().mask("数据加载中.请稍等...","x-mask-loading");
										Ext.Ajax.timeout=50000;
										Ext.Ajax.request({
										 url: '../../marketrisk/relativerisk/findBeathByPor.action',
										 method:'post',
										 success: function(response, options){
										 	Ext.getBody().unmask();
									        var str = Ext.util.JSON.decode(response.responseText);
									        var data=eval(str['treeTable']);
									    	Ext.getCmp('pgrid').store.loadData(data);
									    	grid.expandNodes(0);
										 },
										failure : function(response, options) {
											Ext.getBody().unmask();
											alert("failure,come back:")
										},
										 params:{
											'proid': proids[0],
									 		'porid': porids[0],
									 		'proname':proname
									        }
										});
								     }
							},  
						enableDD : false
							// 能拖动
					});
					nav.on("contextmenu", this.showTreeMenu);// 面板上添加右击菜单,调用方法		
				}

			},
			showTreeMenu : function(node, e) {
				nodeSelected = node;
				nodeSelected.select();// 选中的node
				if (node.isLeaf()) { // 如果是叶子
					leafMenu.showAt(e.getPoint());// 显示叶子
				} else {
					dirMenu.showAt(e.getPoint());// 显示目录
				}
			},

			show : function() {
				nav.render("trees"); // 加入div
				nav.getRootNode().toggle();// 根节点触发查询
				//nav.expandAll();   //将所有含有子节点的节点展开
			}
		}
	}();
	
	NavTree.init();// 初始化方法
	NavTree.show();// 显示方法}
});


引用
后台构建json格式:

/**
	 * 将数组转换成json格式
	 */
	private JSONArray listToJson(List list,String p){
		JSONArray jsonArray=new JSONArray();
		
		Iterator iter=list.iterator();
		NodeTree nodes=null;
		while(iter.hasNext()){
			nodes=(NodeTree)iter.next();
			JSONObject obj=new JSONObject();
			if("".equals(p)){
				obj.put("id", nodes.getId()+",1,"+Math.random()*1999999999+Math.random()*134783498);
			}else if("1".equals(p)){
				obj.put("id",nodes.getId()+",2,"+Math.random()*1999679999+Math.random()*134873498);
			}else if("2".equals(p)){
				obj.put("id", nodes.getId()+",3,"+Math.random()*1999999999+Math.random()*1347983498);
			}else if("3".equals(p)){
				obj.put("id", nodes.getId()+",4,"+Math.random()*1999999999+Math.random()*1347783498);
			}
			obj.put("text",nodes.getText());
			obj.put("leaf",0==nodes.getIs_leaf()? false : true);
			
			jsonArray.add(obj);
		}
		return jsonArray;

分享到:
评论

相关推荐

    spring4mvc+hibernate4+Ext4MVC的demo案例

    一个简单的ext4MVC界面 demo,左侧提供异步树形菜单(真的查询)..后台采用的 spring4MVC+hibernate4 压缩包里,提供了源代码和war包,源代码使用maven构建...代码里包含了树形sql菜单树.. war包解压到tomcat/webapps/ ...

    mysql:基于AmpPHP异步MySQL客户端

    使用构建的异步MySQL客户端。 amp/mysql是基于构建的异步MySQL客户端。 该库公开了一个基于Promise的API,可以动态地同时查询多个MySQL连接。 客户端在可扩展的可用连接池中透明地分配这些查询,并使用100%用户级...

    asyncom:异步python OM

    我喜欢围绕sqlachemy的声明性层构建,后来发现我可以修补session.query上的某些方法,以使用它自己的sql生成器,并使查询系统异步。 对象持久性是最小的,需要一些爱。 用法 from sqlalchemy . ext . declarative...

    reactphp-stdio:异步、事件驱动和 UTF-8 感知控制台输入和输出(STDIN、STDOUT),用于真正交互式 CLI 应用程序,构建在 ReactPHP 之上

    线索/reactphp-stdio 异步、事件驱动和 UTF-8 感知控制台输入和输出(STDIN、STDOUT),用于真正交互式 CLI 应用程序,构建在。 您可以使用这个库来构建真正的交互式和响应式命令行 (CLI) 应用程序,当用户输入一行...

    JavaScript的ExtJS框架中数面板TreePanel的使用实例解析

    一种节点是普通的简单树 节点,由Ext.tree.TreeNode定义,另外一种是需要异步加载子节点信息的树节点,该类由Ext.tree.AsyncTreeNode定 义。 在数据中, text 显示文字, leaf 节点 , children 子节点,expanded ...

    artax:基于AmpPHP异步HTTP1.1客户端

    因此,它不依赖于ext/curl 。产品特点异步请求完整的单线程并发合并持久性保持活动连接透明地跟随重定向解码压缩的实体主体公开标题和消息数据流实体实体以进行大量传输的内存管理支持所有标准和自定义HTTP方法动词...

    ExtAspNet_v2.3.2_dll

    -重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。 +2009-11-21 v2.1.5 +Tree优化。 -修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和...

    asio-extensions:在(Boost。)Asio之上构建的附加功能

    )Asio上构建的各种组件和功能的集合。 它与独立的Asio以及Boost版本兼容。功能概述文件系统: 文件句柄类型支持: Asio的*Stream概念( SyncReadStream , SyncRandomAccessReadDevice ,...) 查询/更改文件元数据...

    qjs-ext-lib:一组QuickJS的纯JS扩展

    使用JS解析命令行参数并构建静态命令行实用程序(请参阅 ) 异步执行外部流程(请参阅 ) setInterval / clearInterval /等待功能(请参阅 ) curl包装器支持所有HTTP方法和大多数curl选项(请参阅 ) 最小单元...

    xcb-imdkit:xcb的输入法开发支持

    xcb-imdkit xcb-imdkit是xcb中xim协议的实现,与带有Xlib的IMDkit和位于Xlib内的xim的实现相比,它具有更少的内存占用空间,更好的性能以及在格式错误的客户端上的安全性。 更不用说它们都是异步的,并且可以与xcb...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。 +2009-11-21 v2.1.5 +Tree优化。 -修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和...

    ari:Golang星号REST接口(ARI)库

    Asterisk Rest接口( )是一个异步API,允许您访问用于自定义通信应用程序的基本Asterisk对象。 该项目还包括一些方便的包装器,用于/ ext。 其中包括用于播放音频,IVR,录音和其他任务的惯用工具,这些工具很难在...

    javaee笔试题-source-address:源地址

    一个前端模板,可帮助您构建快速、现代的移动 Web 应用程序。 awk —— :speech_balloon: 使用谷歌翻译、必应翻译、Yandex.Translate 等的命令行翻译器。 C - 事件驱动的异步并发网络引擎,为 PHP 提供高性能。 - 将...

    java8集合源码-awesome-stars:我自己的真棒清单!

    一个前端模板,可帮助您构建快速、现代的移动 Web 应用程序。 awk —— :speech_balloon: 使用谷歌翻译、必应翻译、Yandex.Translate 等的命令行翻译器。 C - 事件驱动的异步并发网络引擎,为 PHP 提供高性能。 - 将...

    KODExplorer 芒果云-资源管理器

    - 完美取代FTP管理:可用于服务器文件管理,zip解压缩 备份还原、支持图片、音乐、视频预览、office、pdf等格式在线预览。文件夹拖拽上传……。 - 在线编程:支持几乎所有编程语言的在线编辑(高亮,多光标编辑.堪比...

Global site tag (gtag.js) - Google Analytics