2011-05-04 63 views
0

我有一個字段集問題。該表格具有用戶可以選擇的日期範圍的下拉組合。日期在ArrayStore中。如果我把它放在fieldset外面,它可以很好地工作。但是一旦進入fieldset,它將不會加載數據。我已經試過這與JSON商店以及相同的結果。ExtJS:組合數據存儲未在字段集內加載

下面的代碼:

{ 
    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 is undefined

不在於它可以幫助很多。

回答

1

你錯過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); 
     } 
    } 
} 
+0

我的確,謝謝。它在fieldset外部工作而不在內部的原因是因爲代碼是100%動態的,並且由兩個獨立的代碼塊構建。我忽略了將模式參數放在字段集方法中。 – cmhampton 2011-05-05 04:22:57

+0

修復它..問題只是'模式'配置 – 2011-05-05 04:30:32