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();

如果您现在想将它们合并到一个对象中,您可以这样做

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

您可以拥有一个函数,它将汇总您需要的所有值,并从所有选择字段的更改事件中触发该函数。

在控制器中,您可以像这样收听更改事件:

'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 回答