【问题标题】:How can I find a record based on another record?如何根据另一条记录找到一条记录?
【发布时间】:2019-09-30 00:56:38
【问题描述】:

我正在从数据库中检索一些值,如下所示:

var data = new Ext.create('Ext.data.Store',{
                                fields: [

                                        {name:'code',mapping: 'CODE'},{name:'code_company',mapping: 'COD_COMP'}, 
                                        {name:'descriptionCompany',mapping: 'DESC_COMP'}, {name:'group',mapping: 'GRP_GRP'},                                        

                                ],
                                autoLoad: false,
                                remoteSort: true,
                                proxy: {               
                                    type: 'ajax',
                                    url: 'index.php?Control=GeneralData&Accion=companyData', // this is the Store Procedure from I am getting the data
                                },

                            });

        data.load();

我从数据库中得到这个:

GRP_GRP | CODE | COD_COMP | DESC_COMP
   1        1       1         APPLE
   1        1       2       MICROSOFT
   1        1       3          HP
   1        2       1        SAMSUNG
   1        2       2         NOKIA
   1        2       3         BLUE


到目前为止一切都很好。当我试图从该响应中获取特定记录时,我的问题就出现了。

我的意思是,我试图从这样的响应中获取描述(诺基亚):

var record = data.findRecord('code_company', 2);

该代码的输出是“MICROSOFT”,而不是我想要的 NOKIA,但我已经知道为什么会发生这种情况。我需要在搜索中更加具体,但这就是我不知道该怎么做。

我在一个表单中设置了 2 个组合框,我从中获取组和从用户选择的代码。我将这些值保存在 2 个变量中。

现在我需要一段代码,它允许我根据用户选择的组和代码查找记录。

例如,如果用户选择了组 1 和代码 2,我希望能够在这些参数中显示任何记录

【问题讨论】:

    标签: database extjs store


    【解决方案1】:

    您可以使用与过滤功能一起使用的QueryBy,以便获取与此功能匹配的所有记录。

    var records = store.queryBy(function(record, id) {
        return (record.get('code_company') == 2 &&
            record.get('code') == 2);
    }).items;
    

    然后你可以让每条记录为每个记录做一个

    records.forEach(record=>{
     console.log('Company Name', record.get('descriptionCompany'));
    })
    

    【讨论】:

    • 感谢您的帮助。我有一个问题,从你给我的代码中我怎样才能显示记录?例如第三个描述或第一个。我正在尝试这样做,但我总是得到 [object][object] 作为响应
    • QueryBy 返回一个包含所有记录的数组,检查编辑的答案,看看它是否有效
    猜你喜欢
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 2020-05-10
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多