0

次のようにフォーマットされた JSON データ ソースから描画するグリッドを作成しています。

[{"user":{"username":"foo","url":"bar"}},
   [{"product":{"name":"banana","price":"85"}},
    {"product":{"name":"peach","price":"66"}},
    {"product":{"name":"strawberry","price":"78"}}
   ]
]

しかし、製品のコンテンツを使用してデータグリッドにデータを入力するようにデータグリッドに指示する方法がわかりません。ここに私のデータグリッドコードがあります:

        <script>
        require(["dojo/store/JsonRest"], function (JsonRest) {
            myStore = new JsonRest({ target: 'myurl', handleAs: 'json'
            });
        });

        require(["dojox/grid/DataGrid", "dojo/data/ObjectStore", "dojo/domReady!"
        ], function (DataGrid, ObjectStore) {
            grid = new DataGrid({
                store: dataStore = new ObjectStore({ objectStore: myStore }),
                structure: [
                    { name: "Procuct", field: "name", width: "200px" }
                ]
            }, "grid3");

            grid.startup();

        });
    </script>
    <div id="grid3"></div>

エラーは発生しませんが、グリッドに値が入力されていることがわかりません。

THISと同様の質問ですが、データ構造が少し異なります。

4

3 に答える 3

0

grid.renderArray(dataStore) を試して、グリッドにコンテンツを入力しましたか?

于 2013-12-24T05:11:44.327 に答える
0

オプションは、dataStore.query() 呼び出しの前に、json オブジェクトに新しいプロパティを追加することです。これはdojo/aspectで実現できます。他の例については、記事を参照してください。

aspect.before(dataStore, "query", function(items) {
    items.forEach(function(item) { 
        //Do something here. I'll combine two properties.
        item.newProperty = item.propertyValueA + "-" item.propertyValueB;
            return item;
        });
    return items;
});

dataStore.query() が呼び出されると、上記の関数が呼び出されます。これにより、json オブジェクトに新しいプロパティが追加されます。上記の例では、newProperty は propertyValueA と propertyValueB を連結したものです。

これにより、必要に応じて json を操作できる場合があります。

于 2014-01-04T22:11:30.907 に答える