Question

Model:

Ext.define('Product', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'product',     type: 'string'},
//      {name: 'active',     type: 'string'},
        {name: 'balance', type: 'string'}
    ]
});

Store:

var store = Ext.create('Ext.data.TreeStore', {
        model: 'Product',
        proxy: {
            type: 'ajax',
            url: 'treegrid.json'
        },
        folderSort: true
    });

TreeGrid:

var tree = Ext.create('Ext.tree.Panel', {
        title: 'Core Team Projects',
        width: 500,
        height: 300,
        renderTo: Ext.getBody(),
        collapsible: true,
        useArrows: true,
        rootVisible: false,
        store: store,
        multiSelect: true,
        singleExpand: true,
        //the 'columns' property is now 'headers'
        columns: [{
            xtype: 'treecolumn',
            text: 'Ürün',
            flex: 2,
            sortable: true,
            dataIndex: 'product'
        },{
            text: 'Bakiye',
            flex: 1,
            dataIndex: 'balance',
            sortable: true
        }]
    });
    this.add(tree);
    this.doLayout();

My Problem: I'm able to load my treegrid with this url json store. But I want to load it with decoded json object which comes from the server. Something like below:

Store:

var store = Ext.create('Ext.data.TreeStore', {
        model: 'Product',
        root: inData,
        folderSort: true
    });

inData:

{"text":".",
"children":[
{"product":"Mevduat","balance":"15000","expanded":"true","children":[
      {"product":"Vadesiz Mevduat","balance":"7000","expanded":"true","children":[
         {"product":"Vadesiz Hesap","balance":"3500","leaf":"true"},
         {"product":"fk Hesap","balance":"3500","leaf":"true"}
      ]
   },
   {"product":"Vadeli Mevduat","balance":"8000","expanded":"true","children":[
      {"product":"Kirik Vadeli Hesap","balance":"3000","leaf":"true"},
      {"product":"Birikimli Gelecek Hesabı","balance":"5000","leaf":"true"}
   ]}]
},
   {"product":"Bireysel Krediler","balance":"40000","expanded":"true","children":[
      {"product":"Konut Kredisi","balance":"15000","leaf":"true"},
      {"product":"Arsa Kredisi","balance":"25000","leaf":"true"}
   ]
}]}

But if I use inData json object my tree panel doesn't display texts.

Was it helpful?

Solution

Use a memory proxy and the root config:

var store = Ext.create('Ext.data.TreeStore', {
    model: 'Product',
    proxy: {
        type: 'memory'
    },
    root: inData,
    folderSort: true
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top