0

私はいくつかの FormPanel を持っています。それぞれに値を入力できます。これらすべての値を追加する何かが必要です。ループまたは関数でそれを行うことはできますか? これは私のコードです:

view1.js:

Ext.define('myApp.view.fp2', {
extend: 'Ext.form.Panel',
alias: 'widget.fp2',

config: {
    id: 'fp2',
    styleHtmlContent: true,
    items: [
        {
            xtype: 'fieldset',
            styleHtmlContent: true,
            title: 'Prueba 3',
            items: [
                {
                    xtype: 'selectfield',
                    docked: 'bottom',
                    id: 'f3',
                    margin: 10,
                    labelWidth: '0%',
                    autoSelect: false,
                    options: [
                        {
                            text: '0',
                            value: 0
                        },
                        {
                            text: '1',
                            value: 1
                        }
                    ]
                }
            ]
        },
        {
            xtype: 'fieldset',
            styleHtmlContent: true,
            title: 'Prueba 4',
            items: [
                {
                    xtype: 'selectfield',
                    docked: 'bottom',
                    id: 'f4',
                    margin: 10,
                    labelWidth: '0%',
                    autoSelect: false,
                    options: [
                        {
                            text: '0',
                            value: 0
                        },
                        {
                            text: '1',
                            value: 1
                        },
                        {
                            text: '2',
                            value: 2
                        }
                        ]
                }
            ]
        },
        {
            xtype: 'fieldset',
            styleHtmlContent: true,
            title: 'Prueba 5',
            items: [
                {
                    xtype: 'selectfield',
                    docked: 'bottom',
                    id: 'f5',
                    margin: 10,
                    labelWidth: '0%',
                    autoSelect: false,
                    options: [
                        {
                            text: '0',
                            value: 0
                        },
                        {
                            text: '1',
                            value: 1
                        },
                        {
                            text: '2',
                            value: 2
                        },
                        {
                            text: '3',
                            value: 3
                        }
                    ]
                }
            ]
        },
        {
            xtype: 'fieldset',
            html: 'pregunta 6',
            styleHtmlContent: true,
            title: 'Prueba 6',
            items: [
                {
                    xtype: 'selectfield',
                    docked: 'bottom',
                    id: 'f6',
                    margin: 10,
                    labelWidth: '0%',
                    autoSelect: false,
                    options: [
                        {
                            text: '0',
                            value: 0
                        },
                        {
                            text: '1',
                            value: 1
                        }
                    ]
                }
            ]
        }
        {
            xtype: 'button',
            docked: 'bottom',
            itemId: 'button2',
            margin: 10,
            ui: 'forward',
            text: 'siguiente'
            //go to view2.js
        }
    ]
}
});

view2.js は view1 に似ていますが、値が異なります。すべての値を合計する最良の方法は何ですか?

前もって感謝します。

4

2 に答える 2

2

合計するには?それらすべてをキー値として取得したいと思いますか?

Ext.form.FormPanel通話ごとに

var valueObj = formRef.getForm().getValues();

それらを1つのオブジェクトにマージしたい場合は、次のいずれかを行うことができます

Ext.apply(sumValueObj, valueObj ); // will override already existing props

また

Ext.applyIf(sumValueObj, valueObj ); // will not override already existing props
于 2013-02-05T10:28:56.290 に答える
1

必要なすべての値を合計する1つの関数を作成し、すべての選択フィールドの変更イベントからその関数を起動できます。

コントローラでは、次のように変更イベントをリッスンできます。

'fp2 selectfield' : {
            change  : 'onDataChange'
},

そしてonDataChange方法であなたはすることができます:

var values = Ext.getCmp("fp2").getValues();
// code to add/subtract whatever you want

PS私はこのコードをテストしていないので、間違いを無視してください

于 2013-02-05T11:58:51.900 に答える