Extjs Displayfield未从商店填充

时间:2013-07-23 20:42:40

标签: javascript forms extjs

我是Ext JS的新手,现在有点卡在看似简单的东西上,但我不知道如何实现它。

我正在尝试从商店中检索应以field.displayfield格式显示的数据,但我无法这样做。

实施例: 名称:机器45

应该从商店程序中检索机器45,但是当我定义:

store:abc,
value: 'program_id'

不显示program_id列下的值,而是显示'program_id',即

Name:  program_id.

我知道如何链接商店程序和Ext.form.field.Display?我尝试过在网上找到的所有可能的建议。

我在视图文件中的代码是:

var name = Ext.create('Ext.form.field.Display', {
    xtype: 'displayfield',
    id: 'program_name',
    name: 'name',
    fieldLabel: 'Name',
    labelWidth: '250px',
    width: 450,
    height: 20,
    store: programAssetArray,
    value: 'o_program_id'
});

me.items.push(name);

商店代码是:

Ext.define('Availability.store.ProgramData', {
    extend: 'Ext.data.ArrayStore',
    fields: [
        {name: 'o_program_id', type: 'integer'},
        {name: 'o_program_name', type: 'text'},
        {name: 'o_parts_expected', type: 'integer'},
        {name: 'o_start_time', type: 'bigint'},
        {name: 'o_end_time', type: 'bigint'},
        {name: 'o_duration', type: 'bigint'},
        {name: 'o_station_id', type: 'integer'},
        {name: 'o_head_id', type:'integer'}
    ]
});

那么,我如何从商店程序中检索数据呢?

1 个答案:

答案 0 :(得分:0)

显示字段只能显示一个值 - 您无法向其声明商店。您需要显示所有商店值的字段。它们应合并在Form中,您可以在表单中加载商店中的记录。

您的name属性应为o_program_id且值不应为硬编码:

var name = Ext.create('Ext.form.field.Display', {
    //  ...
    name: 'o_program_id',
    // ...
});

您可以为每个记录值声明此类字段。