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

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 2012-04-04 08:53:28

+0

請在您的問題中包含您的代碼,以便我們能夠更好地爲您提供幫助。 – joelparkerhenderson 2012-04-04 08:54:45

+0

謝謝你們,添加了代碼。 – Zaje 2012-04-04 09:02:43

回答

1

您可以訪問模型上的.raw屬性,該屬性將包含來自閱讀器的原始JSON。

+0

檢查這個,謝謝 – Zaje 2012-04-04 09:34:04

1

否。模型或商店必須設置您希望從JSON數據獲得的所有字段。

我很困惑,爲什麼你不想映射額外的字段?這是純粹的節省時間,希望有一個更快的方式來訪問數據?或者你是否期望字段名稱是動態的?

如果這是動態的原因,看看這個職位的解決方案。 Dynamic model with ExtJS 4

+0

節省時間是一件好事。但是,字段名稱是動態變化的,而且我正在處理的字段超過20個,我想知道是否有其他方式可以訪問它。 – Zaje 2012-04-04 09:12:09

+0

我添加了一個鏈接,它顯示瞭如何生成模型/商店和更新網格的列。所以使用它你應該能夠得到你想要的結果。 – 2012-04-04 09:14:38

+0

也會檢查這個,謝謝Jamie – Zaje 2012-04-04 09:34:20