0

ツリー パネル ツリー ストアを Ajax 応答でロードする方法。

ツリー パネル ツリー ストアを Ajax レスポンス json でロードする方法。

ローカルにロードできます。つまり、json ファイルがローカルにある場合は、treeStore.load() メソッドを使用して、構成されたプロキシを介してロードできます。

しかし、Ajax 応答からのデータがある場合、どうすればそれを行うことができますか?

モデル :

Ext.define('dimExpModel', {
extend : 'Ext.data.Model',
fields : [
{
    name: 'memberName'
},
{
    name: 'memberCode'
},
{
    name: 'dimension'
}
]
});

店 :

var dimExpStore = Ext.create('Ext.data.TreeStore',{
         storeId:'dimExpStore',
         model:dimExpModel,
         proxy: {
                    type: 'memory',
                    reader: {
                        type: 'json'
                    }
                }

    });

ツリー パネル:

{
"xtype": "treepanel",
"height": 250,
"id": "treePanel",
"width":400,
"title":"My Tree Panel",
"store": "dimExpStore",
"displayField":"memberName",
"useArrows":true,
"viewConfig": {

}
};

どんな助けでも大歓迎です。

4

2 に答える 2

0

ストア プロキシを ajax として定義し、store.load() を呼び出す必要があります。

var dimExpStore = Ext.create('Ext.data.TreeStore',{
     storeId:'dimExpStore',
     model:dimExpModel,
     proxy: {
        type: 'ajax',
        url : 'users.json',
        reader: {
            type: 'json',
            root: 'records',
            totalProperty:  'recordCount',
            successProperty: 'success'
        }
    }
});
于 2013-08-15T17:45:36.827 に答える
0

T は次のようにします。

{
"xtype": "treepanel",
"height": 250,
"id": "treePanel",
"width":400,
"title":"My Tree Panel",
"rootVisible":false,
"store":{autoLoad:true,"fields":[{"name":"id",type:"string"},
{"name":"memberName","type":"string"},{"name":"memberCode","type":"string"},
{"name":"memberCode","type":"dimension"}],
proxy:{type:'ajax',url:'json.php'},root:{text:"Members","id":"src","expanded":true}}
"displayField":"memberName",
"useArrows":true,
"viewConfig": {

}
};

私の例json.phpでは、目的のjsonを正しい形式で返します。

編集rootブロック 内の「id」パラメータを見てください。子を含むツリー ノードをクリックするたびに、サーバー側で、実際にはすべての子ノードの id_parent である「id」に応じて正しい応答を形成する必要があります。

于 2013-08-14T15:02:51.690 に答える