EXTJS: TreePanel нажмите для изменения набора элементов - PullRequest
0 голосов
/ 30 мая 2011

Привет всем, я начинаю с extjs, и у меня есть проблема с изменением / установкой элемента в макете, когда я нажимаю на один из моих узлов.

Здесь моя contentPanel:

var contentPanel = {
    id: 'content-panel',
    region: 'center', // this is what makes this panel into a region within the containing layout
    layout: 'card',
    margins: '2 5 5 0',
    activeItem: 0,
    border: false,
    items: layoutExamples // HERE I WANT TO CHANGE DYNAMIC
};

Мой "слушатель" на моем триоде:

treePanel.getSelectionModel().on('select', function(selModel, record) {
    if (record.get('leaf')) {
        //Ext.getCmp('content-panel').layout.setActiveItem(record.getId() + '-panel'); <== It's work.
        Ext.getCmp('content-panel').setActive(formPanel); // HERE I TRY TO CHANGE ITEM ON CLICK AND SET FORMPANEL 

});

Мой предмет для теста:

var formPanel = Ext.create('Ext.form.Panel', {
    frame: true,
    title: 'Form Fields',
    width: 340,
    bodyPadding: 5,

    fieldDefaults: {
        labelAlign: 'left',
        labelWidth: 90,
        anchor: '100%'
    },

    items: [{
        xtype: 'textfield',
        name: 'textfield1',
        fieldLabel: 'Text field',
        value: 'Text field value'
    }, {
        xtype: 'textfield',
        name: 'password1',
        inputType: 'password',
        fieldLabel: 'Password field'
    }, {
        xtype: 'filefield',
        name: 'file1',
        fieldLabel: 'File upload'
    }, {
        xtype: 'textareafield',
        name: 'textarea1',
        fieldLabel: 'TextArea',
        value: 'Textarea value'
    }   }]
});

Итак, моя цель - изменить элемент панели контента, когда я нажимаю наузел ..!

Большое спасибо за помощь, друзья!

1 Ответ

2 голосов
/ 30 мая 2011

попробуйте и скажите мне в комментариях:

var formPanel = Ext.create('Ext.form.Panel',
    {
        'id': 'form-panel-1', // or what you want to give
        // and all the properties you already defined
    }
);

И в вашем случае, основываясь на http://docs.sencha.com/ext-js/4-0/#/api/Ext.layout.container.Card-method-setActiveItem:

treePanel.getSelectionModel().on('select', function(selModel, record) {
    if (record.get('leaf')) {
        Ext.getCmp('content-panel').getLayout().setActiveItem(Ext.getCmp('form-panel-1'));
    }
});

Кстати, в предоставленном вами коде есть ошибка в слушателе, он пропускает} для закрытия if!

...