1

该模型:

Ext.ns('Workout.Models.user');
Ext.regModel('User', {
    fields: [{
        name: 'member_id',
        type: 'int'
    }, {
        name: 'first_name',
        type: 'string'
    }, {
        name: 'last_name',
        type: 'string'
    }, {
        name: 'username',
        type: 'string'
    }, {
        name: 'password',
        type: 'string'
    }, {
        name: 'dob',
        type: 'date',
        dateFormat: 'Y-m-d'
    }, {
        name: 'email_address',
        type: 'string'
    }, {
        name: 'is_active',
        type: 'int'
    }],
    proxy: {
        type: 'ajax',
        format: 'json',
        url: '../../_dev/json_fixtures/users.json',
        reader: {
            type: 'json',
            root: 'users'
        },
        root: 'users'
    }
});

商店:

Ext.ns('Workout.Stores');
Workout.Stores.user = new Ext.data.Store({
    model: 'User',
    storeId : 'Workout.Stores.user',
    sorters: [
        'last_name',
        'first_name',
        'member_id'
    ],
    autoLoad: true
});

网格:

Ext.ns('Workout.User');
Workout.User.grid = new Ext.grid.Panel({
    store: 'Workout.Stores.user',
    columns:[{
        text: 'Created At',
        dataIndex: 'created_at'
    }, {
        text: 'First Name',
        dataIndex: 'first_name'
    }]
});

JSON 文件

{
    "users":[{
        "created_at":"2011-04-01 14:13:34",
        "member_id":"14453",
        "first_name":"Jemima",
        "last_name":"Petersen",
        "username":"jpeterson",
        "password":"TDW29HOH7WY",
        "dob":"1960-07-03",
        "email_address":"at.velit.Pellentesque@sociis.com"
    }]
}

当我加载我的 HTML 页面时,网格是空的。但是,如果我通过参数向商店提供原始数据data,它会加载。如果我User.load()通过控制台手动调用,什么也不会发生。如果我调用User.load()并传入一个有效的 JSON 对象,则不会发生任何事情。

我有什么遗漏/做错了吗?

4

2 回答 2

2

您已经完成了设置网格面板高度的所有操作。您需要设置高度以显示记录。这是我要添加到您的网格面板配置中的内容:

height: 300

现在,除此之外,您还有其他问题,例如您尚未created_at在 User 模型中定义。如果您计划在网格中显示该值,则还需要更新您的模型。

于 2011-04-17T07:57:21.933 回答
0
Ext.define(
'BK.store.Categories'
,   {       extend      :   'Ext.data.Store'
        ,   model       :   'BK.model.Category' 
        ,   autoload    :   true
        ,   proxy       :   {       type    :   'ajax'
                                ,   format  :   'json'
                                ,   root    :   'results'
                                ,   api     :   {   read    :   'data/data1.json'   }

                                ,   reader  :   new Ext.data.JsonReader({       type            :   'json'
                                                    ,   root            :   'results'
                                                    ,   successProperty :   'success'
                                                    })
                            }
    }

);

当我在商店中使用硬编码的数据时,它可以正常工作(所以模型、视图、控制器都可以),只要我使用代理,它的行为就好像自动加载为 FALSE,没有网络请求

于 2011-04-22T19:17:21.170 回答