【问题标题】:ExtJS Grid Selection ModelExtJS 网格选择模型
【发布时间】:2018-04-13 01:26:01
【问题描述】:

我有一个 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"
     }]
 }

如您所见,我只映射了store 中的JSON 响应中的valuedisplay

我是否可以检索descriptionextra 的值而无需将它们映射到store

【问题讨论】:

  • 你能显示你的商店代码吗?
  • 请在您的问题中包含您的代码,以便我们更好地帮助您。

标签: javascript extjs extjs4


【解决方案1】:

您可以访问模型上的 .raw 属性,该属性将包含来自阅读器的原始 JSON。

【讨论】:

    【解决方案2】:

    没有。模型或存储必须设置您希望从 JSON 数据中获得的所有字段。

    我很困惑为什么你不想映射额外的字段?这纯粹是为了节省时间,并希望有一种更快的方法来访问数据?还是您希望字段名称是动态的?

    如果是动态原因,请查看此帖子以获取解决方案。 Dynamic model with ExtJS 4

    【讨论】:

    • 节省时间是其中之一。但是是的,字段名称是动态变化的,因为我正在使用的字段超过 20 个,我想知道是否有其他方法可以访问它。
    • 我添加了一个链接,该链接显示了如何动态生成模型/存储并更新网格的列。所以使用它你应该能够得到你想要的结果。
    猜你喜欢
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    相关资源
    最近更新 更多