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 ページをロードすると、グリッドが空になります。ただし、dataparam を介して生データをストアに提供すると、ロードされます。コンソールから手動で呼び出しUser.load()ても、何も起こりません。有効な JSON オブジェクトを呼び出しUser.load()て渡すと、何も起こりません。

私が見逃している/正しく行っていないことはありますか?

4

2 に答える 2

2

グリッドパネルの高さを設定するために期待するすべてのことを実行しました。レコードを表示するには、高さを設定する必要があります。グリッドパネルの構成に追加するものは次のとおりです。

height: 300

これとは別に、created_atユーザーモデルで定義していないなどの問題があります。グリッドに値を表示する場合は、モデルも更新する必要があります。

于 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 に答える