-1

複数のフォームパネル(5)を使用してビューを作成しようとしていますが、それぞれにフィールドセットがありますが、読んだところ、ビューに含めることができるフォームパネルは1つだけで、5を設定すると最初のフォームパネルのみが表示されます。

最初は複数のフィールドセットを持つビューを使用していて、希望の外観になりましたが、このソリューションではストアレコードをこれらのフィールドセットに設定できないため、同じビューで複数のレコードを管理できるため、これらのフィールドセットを作成してみる必要がありました親フォームパネルを持っているので、私の問題が始まりました。

MyConfigView.js:

Ext.define('MyApp.view.MyConfigView',{
extend: 'Ext.Panel',
alias: 'widget.configview',
config:{
        layout: {
            type: 'card',
            animation:{
                type: 'slide',
                direction: 'left',
                duration: 8000
            }
        },
        items:[
        {
                docked: 'top',
                xtype: 'toolbar',
                ui: 'light',
                title: 'Yadayada', 
                itemId: 'toolbarMyConfigView',
                items: [{
                    xtype: 'button',
                    ui: 'back',
                    text: 'Voltar',
                    action: 'voltarConfigView',
                    itemId: 'toolbarMyConfigViewVoltarBt'
                }

                ]

        },
                    {
                    xtype: 'formpanel',
                    items:[
                    {
                        xtype: 'fieldset',
                        title: 'Yada',
                        id: 'fieldSetAssalto',
                        model: 'Socorro.model.MyModel',
                        cls: 'x-floating',
                        items:[
                            {
                                xtype: 'textfield',
                                name: 'numeroTelefone',
                                label: 'Yada'
                            },
                            {
                                xtype: 'textfield',
                                name: 'mensagem',
                                label: 'Yada'
                            }
                        ]
                    }
                    ]
                },

                {
                xtype: 'formpanel',
                items:[

                    {
                        xtype: 'fieldset',
                        title: 'YADA',
                        itemId: 'fieldSetIncendio',
                        model: 'Socorro.model.MyModel',
                        cls: 'x-floating',

                        items:[
                            {
                                xtype: 'textfield',
                                name: 'numeroTelefone',
                                label: 'yadada'
                            },
                            {
                                xtype: 'textfield',
                                name: 'mensagem',
                                label: 'yaaada'
                            }
                        ]
                    }
                    ]
                },
                {
                xtype: 'formpanel',
                items:[ 
                    {
                        xtype: 'fieldset',
                        title: 'YADADA',
                        itemId: 'fieldSetSequestro',
                        model: 'Socorro.model.MyModel',
                        cls: 'x-floating',

                        items:[
                            {
                                xtype: 'textfield',
                                name: 'numeroTelefone',
                                label: 'Yadaaa'
                            },
                            {
                                xtype: 'textfield',
                                name: 'mensagem',
                                label: 'yadada'
                            }
                        ]
                    }
                    ]
                },
                {
                xtype: 'formpanel',
                items:[
                    {
                        xtype: 'fieldset',
                        title: 'YADA',
                        itemId: 'fieldSetEmedico',
                        model: 'Socorro.model.MyModel',
                        cls: 'x-floating',

                        items:[
                            {
                                xtype: 'textfield',
                                name: 'numeroTelefone',
                                label: 'YADAA'
                            },
                            {
                                xtype: 'textfield',
                                name: 'mensagem',
                                label: 'Yada'
                            }
                        ]
                    }
                    ]
                },
                {
                xtype: 'formpanel',
                items:[
                        {
                            xtype: 'fieldset',
                            title: 'Yada',
                            itemId: 'fieldSetAcidente',
                            model: 'Socorro.model.MyModel',
                            cls: 'x-floating',

                            items:[
                                {
                                    xtype: 'textfield',
                                    name: 'numeroTelefone',
                                    label: 'Yada'
                                },
                                {
                                    xtype: 'textfield',
                                    name: 'mensagem',
                                    label: 'Yada'
                                }
                            ]
                        }


                    ]
                }



]
}

});

Sencha Touch 2を使用して複数のフォームパネルでビューを機能させる方法についてのアイデアはありますか?

4

1 に答える 1

1

これは、MyApp.view.MyConfigViewビューに「カード」レイアウトが適用されており、この種類のレイアウトでは、1つのサブビューのみをアクティブとして表示できるためです。それらをすべて同じビューに表示するには、ビュー構成を次のように設定することをお勧めします。

Ext.define('MyApp.view.MyConfigView',{
    extend: 'Ext.Container',
    alias: 'widget.configview',
    config:{
        layout: {
            type: 'vbox',
            align: 'stretch'
        }
        defaults: {
            flex: 1
        },
        items: [
            ...
        ]
    }
});

このようにして、フォームパネルをビュー内で垂直に配置し、同じ高さにします。PS:それらから「x-floating」クラスを削除します。

ただし、カードレイアウトを使用する場合(これが最善の解決策のようです)、すべてのフォームパネルに異なる「itemId」構成パラメーターを指定することをお勧めします。

xtype: 'formpanel',
itemId: 'assalto',
items: [
    ...
]

次に、ST MVCアーキテクチャを使用して、これらのフォームを1つずつ取得し、関数を呼び出します。

.setRecord(<YOUR_RECORD>);

SenchaのドキュメントでSTコントローラーの詳細をお読みください。 http://docs.sencha.com/touch/2-1/#!/guide/controllers

于 2013-01-08T17:28:10.893 に答える