ExtJS combo загрузить и отключить - PullRequest
4 голосов
/ 04 октября 2010

Я суммирую проблему следующим образом.

Я использую форму для редактирования информации пользователя, которая загружается из БД (я получаю эти значения через JSONStore)

Я хочу включить /отключить комбо в зависимости от загруженного значения другого комбо.

Пример: отключить комбо2, если загруженное значение в комбо1 = 0

  • , если я загружаю комбо1 = 1, комбо2 = 12:Все нормально
  • , если я загружаю combo1 = 0, combo2 = 15: отключить combo2

Есть идеи?Спасибо

Ответы [ 2 ]

2 голосов
/ 04 октября 2010

Такой слушатель должен делать свою работу:

formEditUser.getForm().on('actioncomplete',function(form,action) {
  if(combo1.getValue() == 0) {
    combo2.disable();
  } else if (combo1.getValue() == 1) {
    combo2.enable();
  }
})
0 голосов
/ 24 февраля 2011

сегмент рабочего кода:

enter code here
                                           {xtype: 'fieldset',
                                            items: [{xtype: 'combo',
                                                     hiddenName: 'category[line]',
                                                     fieldLabel: 'Category',
                                                     store: categories,
                                                     emptyText: 'Select',
                                                     triggerAction: 'all',
                                                     mode: 'local',
                                                     displayField: 'category_name',
                                                     valueField: 'id',
                                                     anchor: '50%',
                                                     listeners:{
                                                        select:{fn:function(thisCombo, value) {
                                                            var combo = Ext.getCmp('combo-subcats');      
                                                                combo.enable();
                                                                //combo.clearValue();
                /* category is part of the json data inside the subcat. So the first select choose the category - then filter out only that bit and populate the subcat combo. Make sense?                   */                         combo.store.filter('category', values.data['category']);
                                                            }}
                                                        }
                                                    },
                                                    {xtype: 'combo',
                                                     hiddenName: 'subcats[line]',
                                                     disabled: true,
                                                     id: 'combo-subcats',
                                                     fieldLabel: 'Sub Cat',
                                                     store: getSubcatsStore(),
                                                     emptyText: 'Select',
                                                     triggerAction: 'all',
                                                     mode: 'local',
                                                     displayField: 'name',
                                                     valueField: 'id',

                                                     anchor: '50%',
                                                     lastQuery: '' //<-- this is what makes it work.
                                                    },
...