0

アプリの起動時にいくつかの選択フィールドを無効にしようとしています。私のメインのナビゲーションはタブパネルで、ここに設定フォームがあります。

{
                    xtype: 'formpanel',
                    title: 'Einstellungen',
                    iconCls: 'settings',
                    cls: [
                        'settingsPanel'
                    ],
                    id: 'settingsPanel',
                    ui: 'light',
                    layout: {
                        type: 'vbox'
                    },
                    scrollable: false,
                    items: [
                        {
                            xtype: 'selectfield',
                            border: '',
                            cls: [
                                'name1'
                            ],
                            id: 'name1',
                            labelAlign: 'top',
                            autoCapitalize: false,
                            autoComplete: false,
                            placeHolder: '1. Name eingeben',
                            displayField: 'name',
                            store: 'settingsStore',
                            valueField: 'name'
                        }

コントローラーのinit関数で、これを試します:

var form = Ext.ComponentQuery.query('formpanel');
form.getAt(0).disable();
form.getAt(1).disable();
form.getAt(2).disable();

しかし、私は得る:

Uncaught TypeError: Object [object Object] has no method 'getAt'

コントローラー内でフォームを取得し、選択フィールドを無効にするにはどうすればよいですか? これはおそらくスコープの問題ですか?

ありがとう!

4

1 に答える 1

1

私はあなたの問題に取り組み、それを解決しました。以下は2つのコードです:-

メインのNav.js

    {
        xtype: 'fieldset',
        id: 'abc', // give a unique 'id' to your fieldset
        items: [
                {
                    xtype: 'selectfield',
                    border: '',
                    cls: [
                        'name1'
                    ],
                    id: 'name1',
                    labelAlign: 'top',
                    autoCapitalize: false,
                    autoComplete: false,
                    placeHolder: '1. Name eingeben',
                    displayField: 'name',
                    store: 'settingsStore',
                    valueField: 'name'
                }
           ]
    }

controller.js

      launch: function () {
                console.log("launch");
                var form = Ext.getCmp('abc'); // calling fieldset with 'id'
                console.log('Fetching fieldset...');
                form.getAt(0).disable();
            }

お役に立てれば。

于 2012-10-08T06:29:38.287 に答える