1

dgrid 0.4.0 を使用してツリー構造を表示しようとしています。(以前のバージョン 0.3.x の使用経験はありません)。

このサンプルは、alice と bob の 2 つのフォルダーで作成しました。それぞれにいくつかのファイル(葉)があります。

ストア (「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();
        });

ウィジェットが表示されると、データは常にフラットに見えます。

ここに画像の説明を入力

「ボブ」をクリックすると、その部分が整理されます。

ここに画像の説明を入力

次に、「アリス」をクリックすると、すべてがうまくいきます。

ここに画像の説明を入力

ただし、列を並べ替えると、全体が再び台無しになり、これまで以上に悪化します。

ここに画像の説明を入力

研究室のサンプル コードを試してみましたが、同じ結果が得られました。私の dgrid コンポーネントは Bower 経由でダウンロードされました。この問題は、OS とブラウザーが異なる 2 台のコンピューターで発生します。そして、私はアイデアを枯渇させています... :S どんな入力も非常に感謝しています!

4

1 に答える 1

4

Dylan と私自身がgithub の問題で同じ質問で指摘したように、最上位のアイテムのみを表すコレクションをグリッドに渡す必要があります。を使用する場合、この目的でdstore/Tree呼び出すことができます。store.getRootCollection()

の代わりにcollection: astore、 が必要ですcollection: astore.getRootCollection()

于 2015-03-06T00:55:42.137 に答える