当前位置 : 主页 > 网页制作 > Dojo >

dojo中tree的使用教程(二)

来源:互联网 收集:自由互联 发布时间:2021-06-15
接上篇。 经过四个小时的努力,终于把cbtree基本搞定。雏形也基本完成,这里把代码贴出来。 代码贴出来之前还是先来个图吧。 cbtree的基本使用: !DOCTYPE HTMLhtml head base href="%=basePath

接上篇。

经过四个小时的努力,终于把cbtree基本搞定。雏形也基本完成,这里把代码贴出来。

代码贴出来之前还是先来个图吧。

cbtree的基本使用:

<!DOCTYPE HTML>
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'treeTest.jsp' starting page</title>
	<link rel="stylesheet" type="text/css" href="js/dijit/themes/claro/claro.css">
	<!-- cbtree需要的css文件 -->
	<link rel="stylesheet" type="text/css" href="js/cbtree/themes/claro/claro.css">
	<link rel="stylesheet" type="text/css" href="css/main.css">
  </head>
  
  <body class="claro">
    <button type="button" id="treeBtn" data-dojo-type="dijit/form/Button">tree测试</button>
 	<div id="CheckboxTree"></div>
     <form data-dojo-type="dijit/form/Form">
	    <div data-dojo-type="dijit/Dialog" class="selectDia" id="selectDia" title="终端划分">
	    	<table>
	    		<tr>
	    			<td>
	    				<fieldset>
	    					<legend>未选中</legend>
		    				<div class="leftTree" id="leftTree">
		    					<div id="CheckboxTree1"></div>
		    				</div>
		    			</fieldset>
		    		</td>
		    		<td>
		    			<button class="toRightBtn" id="toRightBtn" type="button" data-dojo-type="dijit/form/Button">--></button>
		    			<br/>
		    			<br/>
		    			<button class="toLeftBtn" id="toLeftBtn"type="button" data-dojo-type="dijit/form/Button"><--</button>
		    		</td>
		    		<td>
		    			<fieldset>
		    				<legend>已选中</legend>
		    				<div class="rightTree" id="rightTree">
		    					<div id="CheckboxTree2"></div>
		    				</div>
		    			</fieldset>
		    		</td>
		    	</tr>
	    	</table>
	    	<div class="actionBar">
	    		<button type="submit" data-dojo-type="dijit/form/Button">确定
	    			
	    		</button>
	    		<button type="button" id="cancelBtn" data-dojo-type="dijit/form/Button">取消</button>
	    	</div>
	    </div>
    </form>
    
    <script type="text/javascript" src="js/dojo/dojo.js" data-dojo-config="parseOnLoad:true"></script>
    <script type="text/javascript">
    	require([
    	         "dijit/registry",
					"dojo/ready",
					"dojo/store/Memory",					 // basic dojo/store
					"cbtree/Tree",								 // Checkbox tree
					"cbtree/model/TreeStoreModel"
    	         ], function(registry, ready, Memory, Tree, ObjectStoreModel){
    			ready(function(){
    				var data = [
						{ id: "earth", name:"The earth", type:"planet", population: "6 billion"},
						{ id: "AF", name:"Africa", type:"continent", population:"900 million", area: "30,221,532 sq km",
								timezone: "-1 UTC to +4 UTC", parent: "earth"},
							{ id: "EG", name:"Egypt", type:"country", parent: "AF" },
							{ id: "KE", name:"Kenya", type:"country", parent: "AF" },
								{ id: "Nairobi", name:"Nairobi", type:"city", parent: "KE" },
								{ id: "Mombasa", name:"Mombasa", type:"city", parent: "KE" },
							{ id: "SD", name:"Sudan", type:"country", parent: "AF" },
								{ id: "Khartoum", name:"Khartoum", type:"city", parent: "SD" },
						{ id: "AS", name:"Asia", type:"continent", parent: "earth" },
							{ id: "CN", name:"China", type:"country", parent: "AS" },
							{ id: "IN", name:"India", type:"country", parent: "AS" },
							{ id: "RU", name:"Russia", type:"country", parent: "AS" },
							{ id: "MN", name:"Mongolia", type:"country", parent: "AS" },
						{ id: "OC", name:"Oceania", type:"continent", population:"21 million", parent: "earth"},
							{ id: "AU", name:"Australia", type:"country", population:"21 million", parent: "OC"},
						{ id: "EU", name:"Europe", type:"continent", parent: "earth" },
							{ id: "DE", name:"Germany", type:"country", parent: "EU" },
							{ id: "FR", name:"France", type:"country", parent: "EU" },
							{ id: "ES", name:"Spain", type:"country", parent: "EU" },
							{ id: "IT", name:"Italy", type:"country", parent: "EU" },
						{ id: "NA", name:"North America", type:"continent", parent: "earth" },
							{ id: "MX", name:"Mexico", type:"country",	population:"108 million", area:"1,972,550 sq km",
									parent: "NA" },
								{ id: "Mexico City", name:"Mexico City", type:"city", population:"19 million", timezone:"-6 UTC", parent: "MX"},
								{ id: "Guadalajara", name:"Guadalajara", type:"city", population:"4 million", timezone:"-6 UTC", parent: "MX" },
							{ id: "CA", name:"Canada", type:"country",	population:"33 million", area:"9,984,670 sq km", parent: "NA" },
								{ id: "Ottawa", name:"Ottawa", type:"city", population:"0.9 million", timezone:"-5 UTC", parent: "CA"},
								{ id: "Toronto", name:"Toronto", type:"city", population:"2.5 million", timezone:"-5 UTC", parent: "CA" },
							{ id: "US", name:"United States of America", type:"country", parent: "NA" },
						{ id: "SA", name:"South America", type:"continent", parent: "earth" },
							{ id: "BR", name:"Brazil", type:"country", population:"186 million", parent: "SA" },
							{ id: "AR", name:"Argentina", type:"country", population:"40 million", parent: "SA" }
					];
		    		var store = new Memory( { data: data });
					var model = new ObjectStoreModel( { store: store,
						 query: {id: "earth"},
						 rootLabel: "The Earth",
						 checkedRoot: true
					 });
						var tree = new Tree( { model: model, id:"tree00" }, "CheckboxTree" );
						var tree1 = new Tree( { model: model, id:"tree01", style:{width:'230px', height:'350px'} }, "CheckboxTree1" );
						var tree2 = new Tree( { model: model, id:"tree02", style:{width:'230px', height:'350px'} }, "CheckboxTree2" );
						//tree.startup();
						tree1.startup();
						tree2.startup();
					registry.byId("treeBtn").on("click", function(){
						registry.byId("selectDia").show();
					});
			});
    	});
    </script>
    
  </body>
</html>
关键点:上图中的css一定要注意,cbtree需要引用它自带的css<link rel="stylesheet" type="text/css" href="js/cbtree/themes/claro/claro.css">,不引用的话可能checkbox不会显示,这是我的经验,浪费我快三个小时。
网友评论