2012-04-04 5 views
0

У меня есть сетка ExtJS с отображенным на нее хранилищем.Модель выбора сетки ExtJS

Ответ JSON для магазина содержит 20 полей, но я отобразил только 10 полей в магазине. Возможно ли, чтобы я получил другие 10 полей без необходимости сопоставлять их в магазине или мне необходимо отобразить все поля в хранилище. Выполнение этого в строке выбора события сетки. Что касается кода, я могу создать сетку, отобразить хранилище, запустить событие и даже получить запись для выбранной строки с отображаемым полем 10.

Любые предложения?

По просьбе Шекхара:

определения магазина

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)]); 
    } 
}); 

The 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" 
    }] 
    } 

Как вы можете видеть, что я отобразил только 'значение' и 'дисплей' от Ответ JSON в магазине. Возможно ли, чтобы я возвращал значения «описания» и «лишних» без необходимости сопоставлять их в магазине.

+0

Можете ли вы показать код ур магазина? – Shekhar

+0

Пожалуйста, включите ваш код в свой вопрос, чтобы мы могли помочь вам лучше. – joelparkerhenderson

+0

Спасибо, ребята, добавил код. – Zaje

ответ

1

Вы можете получить доступ к свойству .raw на модели, которая будет содержать сырой JSON от считывателя.

+0

, проверяя это, спасибо – Zaje

1

№ Модель или хранилище должны установить все поля, которые вы хотите получить из данных JSON.

Я в замешательстве, почему вы не хотите отображать дополнительные поля? Это просто экономия времени и надеется, что есть быстрый способ получить доступ к данным? Или вы ожидаете, что имена полей будут динамическими?

Если это динамическая причина, взгляните на это сообщение для решения. Dynamic model with ExtJS 4

+0

Экономия времени - одна из вещей да. Но да, имена полей меняются динамически, и поскольку поля, с которыми я работаю, больше 20, мне было интересно, есть ли другой способ доступа к нему. – Zaje

+0

Я добавил ссылку, которая показывает, как сгенерировать модель/хранилище «на лету» и обновить столбцы сетки. Поэтому, используя это, вы сможете получить желаемый результат. –

+0

проверит это тоже, спасибо Jamie – Zaje

Смежные вопросы