ExtJS: комбинированные хранилища данных не загружаются внутри набора полей - PullRequest
0 голосов
/ 05 мая 2011

У меня проблема с набором полей.Форма имеет выпадающий список с диапазонами дат, которые пользователь может выбрать.Даты находятся в ArrayStore.Если я поставлю это вне fieldset, это работает отличноНо попав внутрь набора полей, он не загрузит данныеЯ пробовал это и в магазинах JSON, с тем же результатом.

Вот код:

{
    name:           'DateFieldSet',
    fieldLabel:     '',
    labelSeparator: ':',
    title:          'Choose a date range',
    collapsible:    false,
    autoHeight:     true,
    allowBlank:     true,
    items:          [
                        {
                            fieldLabel:         'Days in past',
                            hiddenName:         'DateRangeCombo',
                            store:              new Ext.data.ArrayStore({
                                                    id:         0,
                                                    fields:     [
                                                                    'rangeValue',
                                                                    'rangeDescription'
                                                    ],
                                                    data:       [
                                                                    [30, '30 days (04/04/2011 - 05/04/2011)'],
                                                                    [60, '60 days (03/05/2011 - 05/04/2011)'],
                                                                    [90, '90 days (02/03/2011 - 05/04/2011)'],
                                                                    [120, '120 days (01/04/2011 - 05/04/2011)'],
                                                                    [180, '180 days (11/05/2010 - 05/04/2011)'],
                                                                    [270, '270 days (08/07/2010 - 05/04/2011)'],
                                                                    [365, '1 year (05/04/2010 - 05/04/2011)']
                                                    ]
                            }),
                            displayField:       'rangeDescription',
                            valueField:         'rangeValue',
                            editable:           true,
                            triggerAction:      'all',
                            width:              150,
                            listeners:          {select:function() {var numberOfDays = ReportForm.form.findField('DateRangeCombo').getValue();var newDate = DateAdd('05/04/2011', 'D', (numberOfDays * -1)); ReportForm.form.findField('StartDate').setValue(newDate);}},
                            xtype:              'combo'
                        },
                        {
                            fieldLabel:         'Or specify your own:',
                            labelStyle:         'width: 100%; font-weight: bold; text-align: left; color: #15428b; font-size: 11px;',
                            labelSeparator:     '',
                            xtype:              'label'
                        },
                        {
                            fieldLabel:         'Start Date',
                            name:               'StartDate',
                            allowBlank:         true,
                            vtype:              '',
                            checked:            false,
                            value:              '04/04/2011',
                            xtype:              'datefield'
                        }, 
                        {
                            fieldLabel:         'End Date',
                            name:               'EndDate',
                            allowBlank:         true,
                            vtype:              '',
                            checked:            false,
                            value:              '05/04/2011',
                            xtype:              'datefield'
                        }
                    ],
    xtype:          'fieldset'
}

Это выглядит совершенно нормально для меня.

РЕДАКТИРОВАТЬ ~Вот ошибка:

this.proxy не определен

Не то чтобы это сильно помогло.

1 Ответ

1 голос
/ 05 мая 2011

скучаешь mode конфиг ..

{
    xtype: 'combo',
    store: new Ext.data.ArrayStore({
        fields: ['rangeValue', 'rangeDescription'],
        data: [
            [30, '30 days (04/04/2011 - 05/04/2011)'],
            [60, '60 days (03/05/2011 - 05/04/2011)'],
            [90, '90 days (02/03/2011 - 05/04/2011)'],
            [120, '120 days (01/04/2011 - 05/04/2011)'],
            [180, '180 days (11/05/2010 - 05/04/2011)'],
            [270, '270 days (08/07/2010 - 05/04/2011)'],
            [365, '1 year (05/04/2010 - 05/04/2011)']
        ]

    }),
    fieldLabel: 'Days in past',
    displayField: 'rangeDescription',
    valueField: 'rangeValue',

    typeAhead: true,
    mode: 'local',    // add this

    triggerAction: 'all',
    emptyText: 'Select date...',
    listeners: {
        select: function () {
            var numberOfDays = ReportForm.form.findField('DateRangeCombo').getValue();
            var newDate = DateAdd('05/04/2011', 'D', (numberOfDays * -1));
            ReportForm.form.findField('StartDate').setValue(newDate);
        }
    }
}
...