如何在zend框架中为程序化方法创建dojo动态树的dojo数据onclick事件

时间:2012-08-02 12:03:41

标签: zend-framework dojo treeview

我是Zend框架的新手,dojo.i在zend框架中使用dojo创建了动态树结构,但是我想通过编写函数来点击每个文件夹和树结构的元素来编写另一种形式.Pleas check我的代码并帮助我,我在点击事件链接上经历了一些道场并且无法解决..

    <html>
    <head>
    <title> Tree Structure </title>
    <link rel="stylesheet"    href=/dojo/dijit/themes/ claro/claro.css" /> 
    <script type="text/javascript" src="/ dojo/dojo/dojo.js" 
         djConfig="parseOnLoad:true, isDebug:true"  >
       </script> 

   <script type="text/javascript">
   dojo.require("dojo.parser");
   dojo.require("dijit.layout.ContentPane");
   dojo.require("dijit.layout.BorderContainer");
   dojo.require("dijit.layout.TabContainer")
   dojo.require("dijit.form.Button");
   dojo.require("dojo.data.ItemFileReadStore"); 
   dojo.require("dijit.tree.ForestStoreModel");
   dojo.require("dijit.Tree"); 
   dojo.require("dojo.parser"); 
  function myTree( domLocation ) { 
  var store = new dojo.data.ItemFileReadStore({url:    "http://localhost/CMTaSS_module1.0/public/dojo/cbtree/datastore/Family-1.7.json"}); 

 var treeModel = new dijit.tree.TreeStoreModel({
         store: store,
         query: { name:'John'}
        });

  var tree =  new dijit.Tree( { 
             model: treeModel, 
            id: "mytree",
           openOnClick: true
                   }); 
                    tree.placeAt( domLocation );
                } 
var tree_obj = new dijit.Tree({
    model: treeModel

 },
  "tree_obj");

 dojo.connect(tree_obj, 'onClick', function(item, node, evt){
     console.log("Item", item);
     console.log("Node", node);
     console.log("Event", evt);
     //console.log('node: ' +tree_obj.getLabel(node));
     //console.log('event: ' +tree_obj.getLabel(evt));
     console.log('identifier: ' + tree_obj.getLabel(item))
  });

</script>

</head>
 <body class="claro"><br><br><br>
 <div id="CheckboxTree"> 
  <script type="text/javascript"> 
     myTree("CheckboxTree"); 
   </script> 
 </div> 
</body>
</html> 

1 个答案:

答案 0 :(得分:0)

看起来您的代码示例格式不正确,因为某些逻辑在myTree函数之外。我用jsbeautifier.org来证实这一点。

其他说明...... 你应该等到dojo准备好了。使用dojo.addonloadcreate a widget并在代码的html部分引用该小部件。小部件是惊人的,是什么使道场很棒,所以掌握它们的工作方式将带来好处。

另请注意,如果以编程方式创建窗口小部件(new dijit.Tree),则应在其上调用startup。在声明性地创建它时不需要这样做(内联html)。

我希望这会有所帮助。