1

ストアがマップされた ExtJS グリッドがあります。

ストアの JSON 応答には 20 個のフィールドが含まれていますが、ストア内でマップしたのは 10 個のフィールドのみです。他の 10 個のフィールドをストアにマップせずに取得することは可能ですか、それともすべてのフィールドをストアにマップする必要がありますか? グリッドの行選択イベントでこれを行います。コードに関しては、グリッドを作成し、ストアをマップし、イベントを発生させ、マップされた 10 フィールドで選択した行のレコードを取得することさえできます。

助言がありますか ??

Shekhar の要求に応じて:

店の定義

Ext.define('gdoc.store.PrintPaperStore', {
    extend: 'Ext.data.Store',

    constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            autoLoad: true,
            storeId: 'PrintPaperStore',
            proxy: {
                type: 'ajax',
                url: 'urlToRetrieveTheJSON',
                reader: {
                    type: 'json',
                    root: 'root'
                }
            },
            fields: [{
                    mapping: 'value',
                    name: 'value'
                },
                {
                    mapping: 'display',
                    name: 'display'
                }
            ]
        }, cfg)]);
    }
});

JSON レスポンス:

{
     "root": [{
         "value": "COATED115",
         "display": "Coated recycled paper (115gms)",
         "description": "Good quality",
         "extra": "EXTRA INFO"
     }, {
         "value": "COATED135",
         "display": "Coated recycled paper (135gms)",
         "description": "Good quality"
     }, {
         "value": "OFFSET",
         "display": "Offset recycled paper (80gms)",
         "description": "Good quality",
         "extra": "EXTRA INFO"
     }, {
         "value": "OTHER",
         "display": "Other paper (client to order)",
         "description": "Good quality",
         "extra": "EXTRA INFO"
     }]
 }

ご覧のとおり、valueとの応答displayからのみマッピングしました。JSONstore

の値を取得することは可能ですか?にマップする必要はdescriptionありません。extrastore

4

2 に答える 2

1

モデルの .raw プロパティにアクセスできます。これには、リーダーからの生の JSON が含まれます。

于 2012-04-04T09:18:48.933 に答える
1

いいえ。モデルまたはストアは、JSON データから使用できるようにするすべてのフィールドを設定する必要があります。

追加のフィールドをマップしたくない理由がわかりません。それは純粋に時間の節約であり、データにアクセスするためのより迅速な方法があったことを望んでいますか? それとも、フィールド名が動的であることを期待していますか?

それが動的な理由である場合は、解決策についてこの投稿をご覧ください。ExtJS 4 による動的モデル

于 2012-04-04T09:09:10.593 に答える