treePanel代码:Ext.define('SMS.view.Menu',{
    extend: 'Ext.tree.Panel',
    alias: 'widget.smsmenu',
    requires:['SMS.store.Menus'],
    initComponent : function(){
        var tree = this; 
        Ext.apply(this,{
            id: 'menu-panel',            
            iconCls:'icon-menu',
            margins : '0 0 -1 1',
            region:'north',
            border : false,
            enableDD : false,
            split: true,
            width : 212,
            height:360,
            minSize : 130,
            maxSize : 300,
            rootVisible: false,
            containerScroll : true,
            //collapsible : true,
            autoScroll: false,
            store:Ext.create('SMS.store.Menus'),
            dockedItems: [{
            xtype: 'toolbar',
            items: [{
                text: '展开',
                iconCls: 'expand',
                handler: function(){
                    tree.expandAll();
                }
            }, {
                text: '折叠',
                iconCls: 'collapse',
                handler: function(){
                    tree.collapseAll();
                }
            }]
        }]
        });
        this.callParent(arguments);
    }
})
store代码Ext.define('SMS.store.Menus',{
    extend: 'Ext.data.TreeStore', 
    proxy: {
            type: 'ajax',
            url: 'users.json'
        },
    root: {
        expanded: true,
        }
})
现在要从users.json中读出数据生成树,请问各位大侠users.json的格式应该是怎样?为什么我按照例子来咋就不能读出来?

解决方案 »

  1.   

    [
                { text: "detention", leaf: true },
                { text: "homework", expanded: true, children: [
                    { text: "book report", leaf: true },
                    { text: "alegrbra", leaf: true}
                ] },
                { text: "buy lottery tickets", leaf: true }
            ]
    这个api上有
      

  2.   

    我不习惯用继承的方式做、贴一段我的树吧,很简单
    TimesLeader.resMgr = Ext.create('Ext.tree.Panel', {
            title: '',
    frame:true,
    useArrows: true,      
    root:treeData,//treeData是向后台请求得到的json格式数据}
      

  3.   

    楼上的格式是对的~
           楼主我之前跟你遇到同样的问题,刚学EXTJS4当时也是想做一个TREE,然后写一个JSON文件从里面读,做一个例子看看。
           但是用上面的格式的话~火狐WEB控制台的错误提示是‘语法错误’,如果把[]去掉的话就是错误‘未组织好’。
           我找了好久最终都没有找到错误在哪里,最后就跟做服务器端的同事沟通~让他给我写一个桩来做测试,返回以上格式JSON串,结果就显示出来了。
           最后我想可能是我的JSON文件格式有问题(我是用记事本创建的然后改后缀命为.json),不知道大神们是怎么创建JSON文件了~我找了很久没找到,知道的指导一下。
    在这里我想说的是~你做TREE的话应该是想动态获得树的结构,那样就配合着服务器端一起做吧~
    如果是静态的树~直接写到store里面就行了。
           好像没有解决你的问题是吧~分享一下我的经验,希望对你有帮助。
           还有就是网上很多资料都是EXTJS2.2或者3的,EXTJS4的资料很少,我给你推荐一个网址,讲的很好:
    http://mhzg.net/effects/ext/index.html
           还有一个学习资料库,虽然不是EXTJS4的,但是里面的每一个例子的设置,属性,方法都有注释~我把它当做中文API来看了:
    http://www.docin.com/mydoc-2424998-1.html&folderId=87921
    希望都对你有帮助~加个好友一起学习吧
      

  4.   

    呵呵,楼上的我的例子就是从http://mhzg.net/effects/ext/index.html 网站上下来的,里面的Extjs4开发笔记(三)——菜单的实现 文章的树,我是直接用user.json文件读,但是读不出。我的火狐是不报错的,但是什么也不显示。
      

  5.   

    2楼同志能把你的treeData的代码也弄出来吗?
      

  6.   

    最新版的火狐菜单工具里有个WEB控制台~你开起来~跑一下看看是不是跟我一样也出错
      

  7.   


    checked: null
    children: Array[2]
    code: null
    guid: "00000000-0000-0000-0000-000000000000"
    icon: null
    id: "root"
    leaf: false
    parent_id: null
    text: "root"字节点一样
      

  8.   

    呵呵,问题解决了,原来我是用extjs4的MVC方式,所以在不同文件夹下定义了Panel和Store,然后我把user.json文件放在了Store文件夹下,而在生成控件的时候是在根目录下定义的app.js文件来生成,我想:可能他生成的时候读文件是按app.js所在位置来读,后来我把user.json放到根目录下,果然搞定了。呵呵所以如果是实用JAVA的Action,直接由Action返回的话,我想就不会有问题了。所以以后要注意目录问题。