Панель формы не отображается по установленному активному элементу

Я новичок в sencha touch, моя проблема в том, что у меня есть отдельное представление для отображения панели формы, щелкнув событие управления, представление панели формы загрузится, но когда я нажимаю на событие, ничего не отображается на моем экране. Просто пустой экран для показа... Я не знаю, что делаю. Панель формы взята из учебника по панели формы sencha.

Ниже представлен мой вид панели формы.

Ext.define('WinReo.view.AddContact', {
    extend: 'Ext.Container',
    xtype: 'addcontact',
    requires: [
        'Ext.TitleBar'
        //'Ext.Video'
    ],
    config: {
        layout:'fit'

    },
    initialize:function(){
        console.log('inside initialize');
        var formPanel = Ext.create('Ext.form.Panel', {
            //xytpe:'formpanel',
            fullscreen: true,
            layout:'fit',

            items: [{
                xtype: 'fieldset',
                items: [
                    {
                        xtype: 'textfield',
                        name : 'name',
                        label: 'Name'

                    },
                    {
                        xtype: 'emailfield',
                        name : 'email',
                        label: 'Email'
                    },
                    {
                        xtype: 'passwordfield',
                        name : 'password',
                        label: 'Password'
                    }
                ]
            }]
        });

        formPanel.add({
            xtype: 'toolbar',
            docked: 'bottom',
            layout: { pack: 'center' },
            items: [
                {
                    xtype: 'button',
                    text: 'Set Data',
                    handler: function() {
                        formPanel.setValues({
                            name: 'Ed',
                            email: '[email protected]',
                            password: 'secret'
                        })
                    }
                },
                {
                    xtype: 'button',
                    text: 'Get Data',
                    handler: function() {
                        Ext.Msg.alert('Form Values', JSON.stringify(formPanel.getValues(), null, 2));
                    }
                },
                {
                    xtype: 'button',
                    text: 'Clear Data',
                    handler: function() {
                        formPanel.reset();
                    }
                }
            ]
        });

    }
});

Это событие контроллера для отображения представления панели формы.

    onItemSwiped: function(list,index,target,record,e)
        {
var addcontact= Ext.create('WinReo.view.AddContact');
            Ext.Viewport.add(addcontact);
            Ext.Viewport.setActiveItem(addcontact);
        },

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


person Dibish    schedule 07.06.2013    source источник
comment
попробуйте установить значение гибкости formpanel на 1 и посмотрите, что произойдет, также дайте мне знать, если вы получите какую-либо ошибку   -  person Viswa    schedule 07.06.2013
comment
Извините за поздний ответ, я пробовал таким образом var formPanel = Ext.create('Ext.form.Panel', { flex:1, ........ но он не работает.. не появляется никаких ошибок в моей консоли .. На самом деле форма есть, когда я даю команду formPanel.show(); в конце формы я вижу кнопки нижней панели инструментов, но текстовые поля не видны. когда я нажимаю кнопки набора данных и получаю данные, я можно увидеть всплывающие данные.единственная проблема в том, что текстовое поле скрыто..заранее спасибо,пожалуйста, помогите решить эту проблему...   -  person Dibish    schedule 10.06.2013
comment
@Dibish .. видите, я обновил свой ответ   -  person Viswa    schedule 10.06.2013


Ответы (1)


Ваше право на setActiveItem и вам нужно его использовать. потому что Ext.Viewport.add() добавляет только к viewPort, а не показывает вид.

Таким образом, единственная проблема в вашем коде заключается в том, что вы создали formPanel, но не добавили ее в представление AddContact.

    ........... 
    // same code
                {
                    xtype: 'button',
                    text: 'Get Data',
                    handler: function() {
                        Ext.Msg.alert('Form Values', JSON.stringify(formPanel.getValues(), null, 2));
                    }
                },
                {
                    xtype: 'button',
                    text: 'Clear Data',
                    handler: function() {
                        formPanel.reset();
                    }
                }
            ]
        });
        this.add(formPanel); // add this line
    }
});

См. эту скрипту.

person Viswa    schedule 10.06.2013
comment
спасибо за этот быстрый ответ .. я удалил Ext.Viewport.setActiveItem (addcontact); .. тогда навигация по страницам не выполняется. В окне не отображается представление AddContact. Событие работает, но активный элемент по-прежнему является текущей страницей. Я не знаю, что делаю неправильно. Обычно я выполнял навигацию по страницам, используя эти три строки кода var addcontact= Ext.create('WinReo.view.AddContact'); Ext.Viewport.add(addcontact); Ext.Viewport.setActiveItem (добавить контакт); - person Dibish; 10.06.2013
comment
Большое спасибо, Висва....ты потрясающий....теперь все работает, фин...большое спасибо, дорогая... - person Dibish; 10.06.2013