2011-07-20 72 views
1

我在那里我定义一个组合已经隐藏着一个奇怪的问题隐藏组合框:真,工作正常,但是当我告诉组合框,从中选择一个值,它隐藏。下面是一些示例代码:ExtJS的 - 基于其他组合价值

(我使用一些自定义的扩展组合框的,但是这不是问题)

第一组合框:显示

var bulkImportType = { 
    xtype: 'ibwComboLocal', 
    fields: ['id', 'name'], 
    data: [[1, '3rd Party Tag'], [2, 'Image'], [3, 'Template']], 
    fieldLabel: 'Type', 
    listeners: { 
     'select': function(combo, record, index) { 
      if (record.get('name') == 'Template') { 
       this.bulkImportTemplateCombo.show(); 
      } else { 
       this.bulkImportTemplateCombo.hide(); 
      } 
     }, scope: this 
    } 
}; 

二组合框(仅当第一组合==模板)

var bulkImportTemplate = { 
    xtype: 'ibwComboJson', 
    hidden: 'true', 
    url: 'http://itads-dl06.tweb.aol.com:3080/IBW/templates?returnJson=1', 
    ref: '../bulkImportTemplateCombo', 
    root: 'templateList', 
    fieldLabel: 'Template'   
}; 

隐藏/显示作品f ine,但似乎当我从“Template”下拉框中选择一个值时,它会重新启动配置并隐藏组合框。从表单中的其他组合的值中选择一个值似乎也是这样,但只有那些远程调用(来自返回组合的JSON的URL)。

远程组合的“重置”窗体配置的任何修复?

编辑:组合框的所有代码。所有这些只是在FormPanel内部呈现。

var inventorySelectDropdown = { 
    xtype: 'ibwComboLocal', 
    fields: ['id', 'name'], 
    data: [[1, 'O&O'], [2, 'Network']], 
    value: 1, // set to O&O by default 
    fieldLabel: 'Inventory' 
}; 

var bulkImportType = { 
    xtype: 'ibwComboLocal', 
    fields: ['id', 'name'], 
    data: [[1, '3rd Party Tag'], [2, 'Image'], [3, 'Template']], 
    fieldLabel: 'Type', 
    listeners: { 
     'select': function(combo, record, index) { 
      if (record.get('name') == 'Template') { 
       this.bulkImportTemplateCombo.show(); 
      } else { 
       this.bulkImportTemplateCombo.hide(); 
      } 
     }, scope: this 
    } 
}; 

var bulkImportTemplate = { 
    xtype: 'ibwComboJson', 
    hidden: 'true', 
    url: 'xxx', 
    ref: '../bulkImportTemplateCombo', 
    root: 'templateList', 
    fieldLabel: 'Template'   
}; 

var vendorDropdownBulk = { 
    xtype: 'ibwComboJson', 
    url: 'xxx', 
    root: 'vendorList', 
    fieldLabel: 'Vendor' 
}; 

var bulkImportUploadField = { 
    xtype: 'fileuploadfield', 
    fieldLabel: 'Select Import File', 
    width: 400 
}; 
+0

ExtJS的哪个版本您使用的? ExtJS 4不久前发布,它包含了一些变化和新功能。 – Mark

+0

3.3,目前。我们有一个大型的基础架构,大约3个,所以我们现在不能升级。 – dmackerman

+0

@dmackerman你可以分享构建本节的代码吗?所以我们可以知道那些触发不好的事件有什么问题。你提供的配置似乎不包括你写的所有听众我认为 –

回答

0

在“选择”听众如果循环,显示()函数调用后,添加以下语句:

this.bulkImportTemplateCombo.setVisible(true)