Ext JS Зависимое поле со списком - PullRequest
0 голосов
/ 15 ноября 2010

Я новичок в extJS и пытаюсь реализовать следующую функциональность:

У меня есть два выпадающих меню выбора, преобразованных с помощью extJS. Как я могу убедиться, что если выбрано значение в одном поле со списком, для другого значения должно быть установлено какое-то значение по умолчанию?

Спасибо.

Отредактировано: код до сих пор:

Ext.onReady(function(){ 

var converted = new Ext.form.ComboBox({ 

    typeAhead: true, 
    triggerAction: 'all', 
    transform:'id_Select1', 
    width:600, 
    forceSelection:true, 
    emptyText:'Select' 

}); 

var convertedCdr = new Ext.form.ComboBox({ 
    typeAhead: true, 
    triggerAction: 'all', 
    transform:'id_select2', 
    width:600, 
    forceSelection:true, 
    emptyText:'Select' 
}); 
});

Я использую ColdFusion для запроса базы данных и заполнения раскрывающихся меню:

<cfquery name="getData1" datasource="abc">
   SELECT * FROM table1
</cfquery>

<cfquery name="getData2" datasource="abc">
   SELECT * FROM table2
</cfquery>

<select name="select1" id="select1">
  <cfoutput query="getData1">
       <option value="#getData1.Id#">#getData1.name#</option>
  </cfoutput>
</select>

 <select name="select2" id="select1">
  <cfoutput query="getData2">
       <option value="#getData2.Id#">#getData2.name#</option>
  </cfoutput>
</select>

1 Ответ

3 голосов
/ 15 ноября 2010

РЕДАКТИРОВАНИЕ - я не использовал CFM ... вам нужно выяснить, как загрузить свой CF, используя хранилища данных, чтобы использовать эту технику.

Вам нужно добавить слушателя для события select в комбо:

xtype: 'combo',
id   : 'firstComboID',
listeners: {
  select: function(combo,  record,  index ) {
    var selVal = Ext.getCmp('firstComboID').getValue();
    var secondCombo = Ext.getCmp('secondComboID');
    secondCombo.store.reload({params: {yourParameterName: selVal}});
}

В основном вы здесь делаете следующее:

  1. Получить значение, выбранное в первом комбо
  2. Получить ссылку на хранилище данных второго комбо
  3. Перезагрузить хранилище второго поля со списком, используя выбранное значение из первого списка
...