dijit.tree的简单应用实例



       近来项目中总部功能有几个关键页面需要用树形结构来展示相关数据,便对dojo中的tree进行了一些应用。
Dojo官网上对于dojo.tree(1.7)的介绍止步于基本方法和属性结构的介绍,在http://dojotoolkit.org/reference-guide/1.8/dijit/Tree.html#dijit-tree 中可以找到比较通俗易懂的Demo。如下图:
 


代码如下:
<!DOCTYPE html>
<html >
<head>


    <link rel="stylesheet" href="../_static/js/dojo/../dijit/themes/claro/claro.css">
	
    <script>dojoConfig = {async: true}</script>
    <script src='../_static/js/dojo/dojo.js'></script><script>require([
       "dojo/ready", "dojo/_base/window", "dojo/store/Memory",
       "dijit/tree/ObjectStoreModel", "dijit/Tree"
       ], function(ready, win, Memory, ObjectStoreModel, Tree){


         // Create test store, adding the getChildren() method required by ObjectStoreModel
        var myStore = new Memory({
          data: [
              { id: 'world', 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: 'world'},
              { 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: 'world' }, ],


           //方法重写,有parent和id来确定children数据
           getChildren: function(object){
              return this.query({parent: object.id});
           }
     });


    // 创建tree需要的核心model,其中重要的为store属性
   //query相当于确定tree中的root(根节点)
    var myModel = new ObjectStoreModel({
        store: myStore,
        query: {id: 'world'}
    });


    //在页面加载完,触发此方法
    ready(function(){
         var tree = new Tree({
              model: myModel
          });
          //将创建好的tree节点放到body处。
          tree.placeAt(win.body()); 
	  //渲染tree
           tree.startup();
       });
    });</script>
</head>
<body class="claro">
    
</body>
</html>




    看过上面的代码,比较重要的是其中的Model对象,这个里面涉及到对数据的解析(解析出树形结构的数据),提供对tree节点的各类常用操作。
 


     

      有兴趣的同学,可以去官网找有关dijit.tree.ObjectStoreModel的资料。多探讨,接下来有时间继续和大家学习tree相关的高级应用。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>通过属性查询地图服务中的信息</title> <link rel="stylesheet" href="https://js.arcgis.com/3.39/esri/css/esri.css"> <!-- <link rel="stylesheet" type="text/css" href="./css/esri.css" /> --> <link rel="stylesheet" href="https://js.arcgis.com/3.40/esri/themes/calcite/dijit/calcite.css"> <script src="https://js.arcgis.com/3.41/"></script> <script> require(["esri/map", //加载地图组件 "dojo/dom", "dojo/on", "esri/InfoTemplate", "esri/graphic", "esri/geometry/Point",//加载点对象组件 "esri/symbols/SimpleMarkerSymbol", "esri/geometry/Extent",//加载范围组件 "esri/layers/FeatureLayer", //加载FeatureLayer地图组件 // "esri/dijit/FeatureTable", "esri/layers/WebTiledLayer", //加载切片地图组件 "esri/layers/ArcGISDynamicMapServiceLayer",//加载动态地图组件 "esri/symbols/SimpleFillSymbol", "esri/renderers/UniqueValueRenderer", "esri/tasks/query", "esri/tasks/QueryTask", "esri/Color", "dojo/domReady!" ], function (Map, dom, on, InfoTemplate, Graphic, Point, SimpleMarkerSymbol,Extent, FeatureLayer, WebTiledLayer, ArcGISDynamicMapServiceLayer, SimpleFillSymbol, UniqueValueRenderer, Query, QueryTask, Color, GeoJsonLayer) { //初始化地图容器 // map = new Map("map", { logo: false, slider: false }, {zoom: 8}); map = new Map("map", { center: [109.33789 , 29.57985], basemap: "satellite", zoom: 10, sliderStyle: "small", logo: false }); // 创建底图 var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"); map.addLayer(basemap,0); // 创建动态图层 var dynamicLayer = new ArcGISDynamicMapServiceLayer("http://116.62.63.94:6080/arcgis/rest/services/sanhuxiangtest/MapServer"); map.addLayer(dynamicLayer,99); }) </script> </head> <body class="tundra"> <div id="map" style="width:900px; height:580px; border:1px solid #000;"></div> 类别名称:<input class="nm" type="text"> </body> </html>
最新发布
07-15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一道光_

1分也是爱,鼓励鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值