9

私は次のようなコンポーネントを持っています:

{
    xtype: 'fieldcontainer',
    layout: 'hbox',
    id: 'article-level-container',
    defaultType: 'textfield',
    fieldDefaults: {
        labelAlign: 'top'
    },
    items: [{
        fieldLabel: 'LEVEL',
        name: 'artLevel',
        inputWidth: 216,
        margins: '0 5 5 0',
        allowBlank: false,
        fieldStyle: 'text-align: right; font-size: 13pt; background-color: #EAFFCC;'
    }, {
        fieldLabel: 'VALUE',
        name: 'artValue',
        inputWidth: 216,
        allowBlank: false,
        blankText: 'zorunlu alan, boş bırakılamaz',
        fieldStyle: 'text-align: right; font-size: 13pt; background-color: #EAFFCC;',
        listeners: {
            change: function(textfield, newValue, oldValue) {
                if (oldValue == 'undefined' || newValue == '') {
                    Ext.getCmp('btnArticleSave').disable();
                } else {
                    Ext.getCmp('btnArticleSave').enable();
                }
            }
        }
    }]
} 

fieldLabel2 番目の項目の値 (この場合は VALUE )を取得したい。

  • 関数の外でこのフィールド値を取得するにはどうすればよいonReadyですか?
  • このフィールドラベルを新しい値で変更するにはどうすればよいですか (選択したコンボボックスの値でフィールドラベルを変更したい)

更新 次のことを試しました:

var artField = Ext.ComponentQuery.query('#articleValueField');
console.log(artField);

コンソール出力

4

2 に答える 2

16

いくつかの方法がありますが、一般的に使用するのは次のExt.ComponentQueryとおりです。

あなたのフィールドitemIdに設定を与えてitemId: 'theField'ください。

 var field= Ext.ComponentQuery.query('#theField')[0];
 field.setFieldLabel(valueFromCombo);

コンボに on リスナーを追加changeします。up と down を使用できます (これはコンポーネント クエリでもあります)。

listeners: {
  change: function(combo) {
    var form = combo.up('#form');
    var field = form.down('#theField');
    field.setFieldLabel(lookupValueFromCombo);
  }
}

ext js の構成設定はセッターとゲッターを取得するため、&メソッドfieldLabelがあることに注意してください。getFieldLabel()setFieldLabel(s)

上記の編集 は、ext js 4.1+ と ext js 4.0+ でのみ実行できます。

field.labelEl.update('New Label');
于 2013-07-16T07:59:01.877 に答える