Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
extjs4。网格中的组合框。使用索引获取数据_Extjs_Binding_Combobox - Fatal编程技术网

extjs4。网格中的组合框。使用索引获取数据

extjs4。网格中的组合框。使用索引获取数据,extjs,binding,combobox,Extjs,Binding,Combobox,我需要我的控制器加载带有组合框的网格 “设备数据”中的状态字段(编号)应从“设备状态”加载可能状态的状态字段,并在组合框中显示这些状态 选择新选项时,id应保存在“设备数据”状态字段中。作为一个数字 // for store 'equipment' <?php header("Content-type: application/json"); ?> { "success": true, "data": [ { "equipmen

我需要我的控制器加载带有组合框的网格

“设备数据”中的状态字段(编号)应从“设备状态”加载可能状态的状态字段,并在组合框中显示这些状态

选择新选项时,id应保存在“设备数据”状态字段中。作为一个数字

// for store 'equipment'
<?php
header("Content-type: application/json");
?>
{
    "success": true,
    "data": [
        {
            "equipment_id": 1,
            "name": "screwdriver",
            "status": 1
        }
    ]
}


// store 'equipmentStatus'
<?php
header("Content-type: application/json");
?>
{
    "success": true,
    "data": [
        {
            "id": 1,
            "status": "available"
        },
        {
            "id": 2,
            "status": "out of stock"
        },
        {
            "id": 3,
            "status": "not available"
        }
    ]
}

// -----------------------------

Ext.define('Equipment.view.EquipmentGrid', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.EquipmentGrid',

    title: 'Equipment manager',

    requires: [
        'Ext.form.field.ComboBox',
        'Ext.grid.column.CheckColumn',
        'Ext.grid.plugin.CellEditing'
    ],

    initComponent: function () {

        // enable quicktips
        Ext.tip.QuickTipManager.init();

        this.cellEditing = new Ext.grid.plugin.CellEditing({
            clicksToEdit: 1
        });

        Ext.apply(this, {

                plugins: [this.cellEditing],

                // connect store to grid
                store: 'Equipments',

                    columns: [
                    {
                        header: 'Status',
                        dataIndex: 'status',
                        editor: new Ext.form.field.ComboBox({
                            typeAhead: true,
                            triggerAction: 'all',
                            store: 'EquipmentStatus'
                        })
                    }
                ]
    });

        this.callParent(arguments);
    }

});
//用于存储“设备”
{
“成功”:没错,
“数据”:[
{
“设备id”:1,
“名称”:“螺丝刀”,
“地位”:1
}
]
}
//存储“设备状态”
{
“成功”:没错,
“数据”:[
{
“id”:1,
“状态”:“可用”
},
{
“id”:2,
“状态”:“缺货”
},
{
“id”:3,
“状态”:“不可用”
}
]
}
// -----------------------------
Ext.define('device.view.EquipmentGrid'{
扩展:“Ext.grid.Panel”,
别名:“widget.EquipmentGrid”,
标题:“设备经理”,
要求:[
“Ext.form.field.ComboBox”,
“Ext.grid.column.CheckColumn”,
'Ext.grid.plugin.CellEditing'
],
initComponent:函数(){
//启用快速提示
Ext.tip.QuickTipManager.init();
this.celleediting=新建Ext.grid.plugin.celleediting({
单击编辑:1
});
Ext.apply(本{
插件:[this.cellEditing],
//将存储连接到网格
商店:'设备',
栏目:[
{
标题:“状态”,
数据索引:“状态”,
编辑器:新建Ext.form.field.ComboBox({
是的,
触发动作:“全部”,
存储:“设备状态”
})
}
]
});
this.callParent(参数);
}
});

我不清楚您的问题,但如果您想在组合框中显示状态并将从组合框中选择的选项以id作为数字保存,则应在组合框配置中添加两个displayField和valueField

    Ext.define('Equipment.view.EquipmentGrid', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.EquipmentGrid',

    title: 'Equipment manager',

    requires: [
        'Ext.form.field.ComboBox',
        'Ext.grid.column.CheckColumn',
        'Ext.grid.plugin.CellEditing'
    ],

    initComponent: function () {

        // enable quicktips
        Ext.tip.QuickTipManager.init();

        this.cellEditing = new Ext.grid.plugin.CellEditing({
            clicksToEdit: 1
        });

        Ext.apply(this, {

                plugins: [this.cellEditing],

                // connect store to grid
                store: 'Equipments',

                    columns: [
                    {
                        header: 'Status',
                        dataIndex: 'status',
                        editor: new Ext.form.field.ComboBox({
                            typeAhead: true,
                            triggerAction: 'all',
                            store: 'EquipmentStatus',
                            // status field will be displayed in combobox
                            displayField: 'status',
                            // id field will be the value of selected status
                            valueField: 'id'
                        })
                    }
                ]
    });

        this.callParent(arguments);
    }

 });

如果不是你想要的,请详细解释你的问题。希望有帮助

谢谢你的回复,你已经理解我的问题了。你的建议将是一个显而易见的答案。但是当我选择我的选项时,返回的字段显示valueField(id),而不是displayField-屏幕截图:!。解决了,我也将valueField设置为“status”。奇怪的是,这是我第一次做的,但并没有起作用,一定是打字错误或缺少字段。不管怎样,谢谢你抽出时间,艾吉泽利斯。一切正常。