如何在ExtJS中动态设置fieldLabel值?

时间:2019-04-22 13:57:55

标签: extjs

我想实现一种 fieldLabel 值来自商店的情况。 Store具有我需要的值,但是我不知道如何将这些值设置为fieldLabel。

假设我有一些障碍:

items: [{
  name: 'someName',
  fieldLabel: 'someFieldLabel'
}]
名称字段中的

someName 来自商店并且可以正常工作。

存储区中存在fieldLabel字段中的

someFieldLabel 值,但实际上显示的是'someFieldLabel',而不是存储区中的值。

有人建议如何使用商店中的值动态地进行此工作吗?

2 个答案:

答案 0 :(得分:0)

items: [{
  itemId: 'someField'
  name: 'someName',
  fieldLabel: 'someFieldLabel'
}];

商店加载功能

 var somefield = Ext.ComponentQuery.query('field[itemId=someField]');
    somefield[0].setFieldLabel('dynamic_field_label');

答案 1 :(得分:0)

下面是关于如何动态更改fieldLabel的代码。

Ext.application({
    name : 'Fiddle',

    launch : function() {
        Ext.create('Ext.panel.Panel', {
            title: 'Dynamic Set Field Label',
            layout: 'vbox',
            renderTo: Ext.getBody(),
            items: [{
                xtype: 'textfield',
                itemId: 'lblItem',
                fieldLabel: 'Testing',
                margin: '0 0 20 0'
            }, {
                xtype: 'button',
                text: 'Set Field Label',
                handler: function (btn) {
                    // alert('button presssed');
                    Ext.ComponentQuery.query('#lblItem')[0].setFieldLabel('New Label');
                }
            }]
        })
    }
});

您可以看到它在here下工作。

注意:使用Ext.ComponentQuery它将返回满足查询要求的对象数组。您需要指定索引以获得单个对象。

store.load({
  callback: function (records) {
    Ext.ComponentQuery.query('#lblItem')
  }
})