2012-04-04 125 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