0

私は JavaScript、dojo dgrid、dstore の初心者であり、まだストアのプロパティ メソッドを正しく上書きするのに苦労しています。

私のデータ構造:

[{"id":"T1","name":"Test","desc":"Rectangular 1",qty":null,"parent":null},    
{"id":"C1","name":"Test 2","qty":0.0,"parent":"T1"},    
{"id":"S1","name":"Test 3","qty":6.0,"parent":"C1"},    
{"id":"S2","name":"Test 4","qty":6.0,"parent":"C1"},    
{"id":"S3","name":"Test 5","qty":6.0,"parent":"C1"}
]


        var StandardGrid = declare([Grid, Keyboard, Selection, Selector, Editor, dgridTree]);
        var CustomStore= declare([Rest, dstoreTree]);

        var myStore = new CustomStore({
            target: "./data.json",
            idProperty: "id",
            getRootCollection: function () {
                return this.root.filter({ parent: null });                  
            },
            getChildren: function (object) {
                return object.parent = object.id;
            },
            mayHaveChildren: function (object) {
                return object.parent == null;
            },
        });

        var treeGrid = window.treeGrid = new StandardGrid({
            collection: myStore.getRootCollection(),
            columns: [
                { renderExpando: true, label: "Name", field: "name", sortable: false },
                { label: "Quantity", field: "qty" },
            ]
        }, "treeGrid");

        treeGrid.startup();

以下のリンクも参照しようとしましたが、まだわかりません: dgrid 0.4.0 ツリーは、ユーザーが操作する前にフラットに見えます

事前に感謝し、感謝します。

4

1 に答える 1

0

最後に、Rest ストアを RequestMemory ストアに置き換えた後、Dgrid ツリー階層を機能させ、追加のフィールド hasChildren をデータセットに配置して、mayHaveChildren メソッドで使用し、Ken Franqueiro のアドバイスに従って getChildren も使用しました。

{"id":"C1","name":"テスト 2","qty":0.0,"parent":"T1", "hasChidlren":true }

        var StandardGrid = declare([Grid, Keyboard, Selection, Selector, Editor, Tree]);
        var MemoryTreeStore = declare([RequestMemory, TreeStore]);

        var myStore = new MemoryTreeStore({
            target: "./data.json",
            idProperty: "id",
            getRootCollection: function () {
                return this.root.filter({parent: null});                    
            },
            getChildren: function (object) {
                return this.root.filter({parent: object.id});
            },
            mayHaveChildren: function (object) {
                return object.parent == null || object.hasChildren == true;
            }
        });

dstore/Tree メソッドを上書きするために、ツリー データセットをどのように構造化するかを検討する必要があると思います。

于 2015-11-03T05:37:30.953 に答える