`
QiaoDuanni
  • 浏览: 136869 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

build yui treeview by json

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Menu-Style TreeView Design</title>

<style type="text/css">
/*margin and padding on body element
  can introduce errors in determining
  element position and are not recommended;
  we turn them off as a foundation for YUI
  CSS treatments. */
body {
	margin:0;
	padding:0;
}
</style>

<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.6.0/build/fonts/fonts-min.css" />
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.6.0/build/treeview/assets/skins/sam/treeview.css" />
<script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/treeview/treeview-min.js"></script>

<!-- Dependencies -->
<script src="http://yui.yahooapis.com/2.6.0/build/yahoo/yahoo-min.js"></script>

<!-- Source file -->
<script src="http://yui.yahooapis.com/2.6.0/build/json/json-min.js"></script>

<!--begin custom header content for this example-->
<!--bring in the folder-style CSS for the TreeView Control-->
<link rel="stylesheet" type="text/css" href="http://developer.yahoo.com/yui/build/treeview/assets/treeview-menu.css" />

<!-- Some custom style for the expand/contract section-->
<style>
#expandcontractdiv {border:1px dotted #dedede; background-color:#EBE4F2; margin:0 0 .5em 0; padding:0.4em;}
#treeDiv1 { background: #fff; padding:1em; margin-top:1em; }
</style>
<!--end custom header content for this example-->
</head>
<body class=" yui-skin-sam">
<h1>Menu-Style TreeView Design</h1>

<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->

<!-- markup for expand/contract links -->
<div id="expandcontractdiv">
	<a id="collapse" href="#">Collapse all</a>
</div>

<div id="treeDiv1"></div>

<script type="text/javascript">
//an anonymous function wraps our code to keep our variables
//in function scope rather than in the global namespace:
(function() {
	var tree; //will hold our TreeView instance
	
	function treeInit() {
		
		YAHOO.log("Example's treeInit function firing.", "info", "example");
		
		//Hand off ot a method that randomly generates tree nodes:
		buildRandomTextNodeTree();
		
		//handler for collapsing all nodes
		YAHOO.util.Event.on("collapse", "click", function(e) {
			YAHOO.log("Collapsing all TreeView  nodes.", "info", "example");
			tree.collapseAll();
			YAHOO.util.Event.preventDefault(e);
		});
	}
	
	//This method will build a TreeView instance and populate it with
	//between 3 and 7 top-level nodes
	function buildRandomTextNodeTree() {
	
		var jsonTree = '{"label":"all", "children":[';
				jsonTree +=	'{"label":"bar", "children":[';
					jsonTree += '{"label":"37628"},';
					jsonTree += '{"label":"quux", "children":[';
						jsonTree += '{"label":"179"},';
						jsonTree += '{"label":"7"}';
					jsonTree += ']},';
				jsonTree += '{"label":"1025"}';
				jsonTree += ']}';
			jsonTree += ']}';
			var jsonString = '{"label":"Level 1","children":[{"label":"Level 2-1"},{"label":"Level 2-2"}]}';
			var prod = YAHOO.lang.JSON.parse(jsonString); 
			var treeObject = YAHOO.lang.JSON.parse(jsonTree);
		//instantiate the tree:
		tree = new YAHOO.widget.TreeView("treeDiv1", treeObject);
		
		//create top-level nodes
		//for (var i = 0; i < Math.floor((Math.random()*4) + 3); i++) {
		//	var tmpNode = new YAHOO.widget.MenuNode("label-" + i, tree.getRoot(), false);
			
			//we'll delegate to another function to build child nodes:
		//	buildRandomTextBranch(tmpNode);
		//}
		
		//once it's all built out, we need to render
		//our TreeView instance:
		tree.draw();
	}

	//This function adds a random number <4 of child nodes to a given
	//node, stopping at a specific node depth:
	function buildRandomTextBranch(node) {
		if (node.depth < 6) {
			YAHOO.log("buildRandomTextBranch: " + node.index);
			for ( var i = 0; i < Math.floor(Math.random() * 4) ; i++ ) {
				var tmpNode = new YAHOO.widget.MenuNode(node.label + "-" + i, node, false);
				buildRandomTextBranch(tmpNode);
			}
		}
	}
	
	//When the DOM is done loading, we can initialize our TreeView
	//instance:
	YAHOO.util.Event.onDOMReady(treeInit);
	
})();//anonymous function wrapper closed; () notation executes function

</script>

<!--END SOURCE CODE FOR EXAMPLE =============================== -->


<!--MyBlogLog instrumentation-->
</body>
</html>
分享到:
评论
1 楼 hnwangdan 2011-01-25  
如何 保存treeview 的节点值呢?

相关推荐

    Struts2中使用JSON+YUI之一[包含功能代码段]

    在Struts2中整合JSON(JavaScript Object Notation)和YUI(Yahoo User Interface Library)可以实现高效的异步数据交互,提升用户体验。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

    关于yui的学习

    数据源可以是XML、JSON或其他格式,可以通过YUI的DataSource组件来处理。 2. **事件处理**:TreeView组件提供了丰富的事件接口,如`beforeexpandnode`、`expandnode`、`click`等,开发者可以监听这些事件来实现...

    YAHOO UI 树

    YUI包含了一系列的模块,如事件处理、动画效果、数据绑定、用户界面组件等,其中就包括了用于构建树形结构的组件——YUI TreeView。 **TreeView组件** 是YUI中的一个重要部分,它允许开发者在网页上展示层次化的...

    Struts2+JSON+YUI组合应用之二构建RichClient

    Struts2、JSON和YUI是开发Web应用程序时常用的三个技术。它们的组合可以创建功能丰富、用户体验良好的富客户端(Rich Client)应用。下面将详细解释这三个技术以及如何结合使用来构建这样的应用。 **Struts2**:...

    YUI3 中tree的两种实现

    var tree = new YUI().use('treeview', 'treeview-dragdrop', function(Y) { var treeData = [...]; var treeView = new Y.TreeView({ srcNode: '#treeContainer', dragDrop: true }).render(); treeView.setData...

    yui3-master.zip

    在“yui3-master.zip”中,我们可以看到不同模块的源代码文件,如“build”目录下的“node”, “event”, “dom”等,这些都是YUI3的核心模块。 2. **事件系统** YUI3的事件系统是其强大功能之一,它允许开发者...

    YUI2 库与例子都有了

    1. **核心库(Core)**:这是YUI的基础,提供事件处理、DOM操作、CSS样式处理、JSON解析等基础功能。它使得开发者能够更方便地进行页面交互和元素操作。 2. **控制台(Console)**:这是一个调试工具,用于在浏览器...

    yui3.10.3最新版

    - **api**:这部分可能包含了YUI 3.10.3的API定义,可能以JSON或其他形式存在,供开发者查阅或用于自动化工具。 - **releasenotes**:发布说明文件,详细列出了3.10.3版本相对于上一版本的改进、新增功能和已知问题...

    yuitest YUI测试工具

    YUI Test is a complete testing framework for JavaScript and Web applications. You can use the simple JavaScript syntax to write unit tests that can be run in web browsers or on the command line, as ...

    yui_2.6.0r2

    - JSON:JSON对象的序列化和反序列化,便于数据交换。 - Calendar:日历组件,可以方便地集成到网页中,用于日期选择。 - Drag and Drop:拖放功能,使得用户可以通过鼠标操作移动元素。 - Container:容器组件,...

    yui 资源包

    《深入理解YUI 3.9.0 r2:界面设计与资源优化》 YUI,全称为Yahoo! User Interface Library,是由雅虎公司开发的一个开源JavaScript库,它旨在简化Web应用程序的构建,特别是对于界面设计和交互效果的实现。在3.9.0...

    针对YUI框架API

    **YUI(Yahoo! User Interface Library)框架API详解** YUI是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可维护的Web应用程序。它包含了一系列模块化的组件,覆盖了用户界面设计、事件处理、...

    yui.rar 例子

    《深入理解YUI:基于“yui.rar 例子”的解析》 YUI,全称Yahoo! User Interface Library,是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、易于维护的网页应用。本篇文章将结合“yui.rar 例子”...

    YUI-ajax框架开发文档

    `YAHOO.widget.DataSource`则用于管理数据源,它可以与各种数据类型(如XML、JSON、CSV等)进行交互,并且可以配合`YAHOO.util.Connect`进行数据加载和刷新。 1. **YAHOO.util.Connect** - `YAHOO.util.Connect....

    yuicompressor-yui compressor

    yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ------------------------------------ //压缩JS java -jar yui...

    【YUI组件】基于YUI的表单验证器

    1. **YUI库**:了解YUI的基本结构、模块化设计和如何引入到项目中,是使用YUI表单验证器的前提。 2. **表单验证**:表单验证的常见规则包括非空检查、长度限制、格式验证(如邮箱、电话号码等)和自定义验证函数。 3...

    YUI3.6文档及示例

    YUI(Yahoo! User Interface Library)是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展的Web应用程序。YUI3.6版本是该库的一个重要里程碑,提供了丰富的组件和工具,以支持现代Web开发的...

    yui_2.9.0前端UI

    YUI 库,全称Yahoo! UI Library。是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等技术创建丰富的网页交互式应用程序。 YUI 基于BSD协议,对所有的使用方式都是免费的。YUI 项目包括YUI 库和两...

    YUI-EXT使用详解

    **YUI-EXT使用详解** YUI-EXT是基于Yahoo! User Interface Library (YUI)的一个扩展库,专为构建富互联网应用程序(RIA)而设计。YUI-EXT提供了许多高级组件,如表格、菜单、窗口、表单、布局管理器等,极大地丰富...

    yuicompressor-2.4.8.jar

    《yuicompressor-2.4.8.jar:前端优化与代码压缩的艺术》 在Web开发领域,优化前端性能是一项至关重要的任务,而yuicompressor-2.4.8.jar正是这样一款强大的工具,专为JavaScript代码压缩而设计,助力开发者实现...

Global site tag (gtag.js) - Google Analytics