加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – ExtJS 4网格:显示带关联的嵌套数据模型

发布时间:2020-12-13 17:39:03 所属栏目:PHP教程 来源:网络整理
导读:我是ExtJS的新手并且遇到了问题.我有一个深度嵌套的json数据,我已经使用多个关联模型成功加载到商店中.但是对于下一步,我无法在简单的网格中显示这些数据,请帮忙.我怎样才能在位于json深处的网格中显示某些内容….这是我的json { "success" : "true","total"
我是ExtJS的新手并且遇到了问题.我有一个深度嵌套的json数据,我已经使用多个关联模型成功加载到商店中.但是对于下一步,我无法在简单的网格中显示这些数据,请帮忙.我怎样才能在位于json深处的网格中显示某些内容….这是我的json

{
        "success" : "true","total":2,"user" : 
        {
            "id" : 12,"email" : "abc@gmail.com","course" : 
            {
                "name" : "BESE","institute" : 
                [{
                    "name" : "Engineering University","semester" :
                    {
                        "number":1,"TCH" : 12,"GPA" : 2.32,"Marks":23.32,"record" : [
                            {
                                "subject" : "Global Studies","CH":2,"GP":4,"Grade": "A+","Marks":99.1
                            },{
                                "subject" : "Digital Logic Design","CH":4,"GP":3.5,"Grade": "B+","Marks":79.1
                            }
                        ]
                    }
                },{
                    "name" : "Another University","semester" :
                    {
                        "number":2,"TCH" : 22,"GPA" : 1.32,"Marks":13.32,"record" : [
                            {
                                "subject" : "C++","GP":3,"Grade": "C+","Marks":59.1
                            },{
                                "subject" : "Engg Math","GP":2.5,"Grade": "C","Marks":39.1
                            }
                        ]
                    }
                }]
            }
        }
    }

这是我的代码……

Ext.define('User',{
    extend: 'Ext.data.Model',fields: [
        {name: 'id',type: 'int'},{name: 'email',type: 'string'},],proxy: {
        type: 'ajax',url : 'getRecord.php',reader: {
            type: 'json',root: 'user'
        }
    },hasMany: { model: 'Course',name: 'course',associationKey: 'course'}

});

Ext.define('Course',{name: 'name',belongsTo: 'User',hasMany: { model: 'Institute',name: 'institute',associationKey: 'institute'}

});

Ext.define('Institute',belongsTo: 'Course',hasMany: { model: 'Semester',name: 'semester',associationKey: 'semester' }

});

Ext.define('Semester',fields: [
        {name: 'number',{name: 'TCH',type: 'float'},{name: 'GPA',{name: 'Marks',belongsTo: 'Institute',hasMany: { model: 'Record',name: 'record',associationKey: 'record' }
});
Ext.define('Record',fields: [
        {name: 'subject',{name: 'CH',{name: 'GP',{name: 'Grade',belongsTo: 'Semester',});

Ext.require('Ext.data.*');
Ext.require('Ext.grid.*');


Ext.onReady(function(){
    Ext.QuickTips.init();
    var store = new Ext.data.Store({
        model: "User",});

    store.load({

    });

 Ext.create('Ext.grid.Panel',{
        renderTo: Ext.getBody(),store: store,width: 400,height: 200,title: 'Application Users',columns: [
            {
                text: 'Name',width: 100,sortable: false,hideable: false,dataIndex: 'email'
            },{
                text: 'Email Address',width: 150,dataIndex: 'course>aname',},{
                text: 'Phone Number',flex: 1,dataIndex: 'User.course.name'
            }
        ]
    });
});

解决方法

目前的一个限制是,嵌套数据默认情况下不容易加载到网格中,但它正在积极处理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读