0

我是 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>
4

1 回答 1

3

已编辑 - 我没有使用过 CFM ...您需要弄清楚如何使用数据存储加载您的 CF 才能使用此技术。

您将需要为组合上的选择事件添加一个侦听器:

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. 使用第一个组合中的选定值重新加载第二个组合框的存储
于 2010-11-15T17:24:41.813 回答