【问题标题】:Dojo: multiple right-click Menus on a large TreeDojo:大树上的多个右键单击菜单
【发布时间】:2013-08-03 19:08:21
【问题描述】:

我正在尝试在大树上定义多个右键单击菜单。 (使用道场 1.8)。 我在树中有 20 多种不同类型的数据项。对于这种数据项类型中的每一种,都有一个特定的右键单击菜单。 我尝试使用菜单的“选择器”将菜单附加到 TreeNode,如http://dojotoolkit.org/reference-guide/1.9/dijit/Menu.html#attaching-to-multiple-nodes 中所述。我为每个 treeNode 添加了一个具有类型名称的类,并相应地定义了菜单选择器。

20 多种菜单之一:

   var personMenu = new dijit.Menu({
      targetNodeIds: ["theTree"],
      selector: ".type_person", 
      menutype: 'person'
   });
   personMenu.addChild(new dijit.MenuItem({   
      label: "person properties", 
      onClick: function(){ createDialog('edit');}
   }));            

类型添加为 className 的 TreeNode 创建:

     _createTreeNode: function(args){
        //Logger.info("_createTreeNode "+args.item.type+";");
        args.className = 'type_'+args.item.type;

        console.dir(args);
        var node = new dijit._TreeNode(args);

我的问题是在树中使用,它不能正常工作:某些 A 类型的 treeNode 的菜单有时会出现在它的所有子节点上。它似乎与菜单定义的顺序有关。如果我首先定义用作其他数据项的父项的菜单,那么问题会少一些。不幸的是,我的数据项可以是其他人的父项和/或子项,这些类型可能出现在树的所有深度,因此更改菜单创建的顺序不足以解决问题...

我做错了吗?是否有任何“选择器”技巧来处理这种情况? (由于树很大,我宁愿避免使用 TreeNode id)

感谢您的帮助,

【问题讨论】:

    标签: menu dojo tree treenode dijit.tree


    【解决方案1】:

    尝试这种方式,但请记住,如果您的商店不可用,请在全局范围内声明您的商店,如 _store:store。对于菜单项,这应该可以尝试一下,它适用于我的情况

    onClick: function (evt){
                                    idCount = idCount +1;
                                    var newItem = {};
                                    newItem.id = idCount;
                                    newItem.main = selectedItemId;
                                    store.newItem(newItem);
                                    sel.setStore(store,'',{query:{main: 0}});
                                    /* mytree.update();*/
                                },
    
        <ul dojoType="dijit.Menu" id="ba" style="display: none;">
          <li dojoType="dijit.MenuItem" onClick="function (evt)">Add a new folder</li></ul>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多