在用户交互之前,dgrid 0.4.0树看起来很平坦

时间:2015-03-05 23:08:09

标签: dojo tree dgrid dstore

尝试使用dgrid 0.4.0显示树结构。 (之前版本0.3.x之前没有经验)。

我用两个文件夹构建了这个样本:alice和bob;每个都有几个文件(叶子)。

商店(" astore.js")

define(['dojo/_base/declare',
       './dstore/Memory',
       './dstore/Tree'],

       function(declare, Memory, Tree) {
           var store = new (declare([Memory, Tree], {}))();

           store.add({node:'bob',     id:1, parent:null, hasChildren:true});
           store.add({node:'alice',   id:2, parent:null, hasChildren:true});

           store.add({node:'thesis',  id:3, parent:1,    hasChildren:false});
           store.add({node:'game',    id:4, parent:1,    hasChildren:false});
           store.add({node:'picture', id:5, parent:2,    hasChildren:false});
           store.add({node:'plan',    id:6, parent:2,    hasChildren:false});
           store.add({node:'mail',    id:7, parent:2,    hasChildren:false});

           return store;
       });

启动脚本:

require(['dojo/_base/declare',
        'app/dgrid/OnDemandGrid',
        'app/dgrid/Tree',
        'app/astore'], 
        function (declare, OnDemandGrid, Tree, astore) {

            w = new (declare([OnDemandGrid, Tree],{}))({
                collection: astore,
                columns:[
                    {field:'node', label:'Whatever...', renderExpando:true}
                ]
            }, 'slot');

            w.startup();
        });

显示小部件时,数据始终显示为平面:

enter image description here

点击" bob"后,该部分被整理出来:

enter image description here

然后我点击" alice",最后看起来都很好:

enter image description here

然而,如果我对一个专栏进行排序,我会把整个东西搞得一团糟,比以往更糟糕了:

enter image description here

我已经尝试了实验室的示例代码,并获得了相同的结果。我的dgrid组件是通过Bower下载的。此问题出现在两台不同的计算机上,具有不同的操作系统和浏览器。而且我对想法感到茫然......:S非常感谢任何投入!

1 个答案:

答案 0 :(得分:4)

正如Dylan和我在同一问题github issue上所指出的那样,你需要将一个集合传递给你的网格,它只代表顶级项目。使用dstore/Tree时,您可以为此目的致电store.getRootCollection()

因此,您需要collection: astore而不是collection: astore.getRootCollection()