3

TreeGrid をセットアップしようとしています。データ オブジェクトは次のようになります。

{
    "code": "success",
    "data": {
        "text": ".",
        "children": [
            {
                "clientname": "Market",
                "contact": "OpenX Market Advertiser",
                "email": "asdasd@asdasd222.de",

データをルート要素として使用する必要があることを Ext に伝える必要があります。

var store = Ext.create('Ext.data.TreeStore', {
    model: 'Task',
    proxy: {
        type: 'ajax',
        url: 'http://localhost/rocketads/trunk/advertisers/index/stats:true/',
        reader:{
            type:'json',
            root:'data'
        }
    },
});

通常のストアでこれをうまく使用していますが、これは私には機能しません。

4

4 に答える 4

3

これを使用することもできます:

        reader: {
        type: 'json',
        // See http://stackoverflow.com/questions/9159627/extjs-loading-tree-from-json-file-using-mvc
        // http://stackoverflow.com/questions/6263380/extjs4-json-treestore
        root: function(o) {
            if (o.data) {
                return o.data;
            } else {
                return o.children;
            }
        }
    }, 
于 2012-02-24T17:40:05.617 に答える
3

リーダーをセットアップroot: 'data'したので、json の「children」を「data」に置き換える必要があります。

{
    "code": "success",
    "data": {
        "text": ".",
        "data": [ // << not "children"
            {
于 2012-02-23T12:57:31.307 に答える
1

残念ながら、TreeStore では、ルートに使用するものはすべて、後続の各レベルのルートとしても使用されるため、おそらくルート ノードを見つけて、そのdataプロパティを見つけません。最上位のプロパティをデータから子に変更するか、子の各インスタンスをデータに変更します。

于 2012-02-23T13:26:05.723 に答える