首页 > 解决方案 > 无法布局复合字段项

问题描述

我使用的是 Ext JS 3.4,在复合字段中,有三个字段,代码如下:

            xtype: 'compositefield',
            name: 'comboField',
            fieldLabel: 'Partner with',
            width: 400,
            cItems:[{
              xtype: 'combo',
              name: 'partnerTypeCombo',
              value: 'ProviderName',
              mode: 'local',
              store: new Ext.data.ArrayStore({
                  fields: ['id', 'displayValue'],
                  data: [
                    ['ProviderName', 'Provider Partner Name'],
                    ['OtherProvider', 'Other Provider Partner']
                  ]
              }),
              valueField: 'id',
              displayField: 'displayValue',
              listeners: {
                scope: this,
                select: function(combo, record, index) {
                  var providerField = this.formPanel.getForm().findField('comboField_providerPartnerNameField');
                  var otherProviderField = this.formPanel.getForm().findField('comboField_otherProviderPartnerNameField');
                  if (combo.value == "OtherProvider") {
                    providerField.setVisible(false);
                    otherProviderField.setVisible(true);
                  }
                  else {
                    providerField.setVisible(true);
                    otherProviderField.setVisible(false);
                  }
                }
              }
            }, {
                xtype: 'spacer',
                width: 10,
                flex: 0
              }, {
                xtype: 'modellinkfield',
                name: 'providerPartnerNameField',
                modelLevelType: 'Organization',
                modelType: 'Organization',
                pickerReport: {
                    reportName: 'TMS.SupplierVendorOrgPicker',
                    targetLevelType: 'Organization'
                }
            }, {
                xtype: 'textfield',
                name: 'otherProviderPartnerNameField',
                hidden: true
            }] 

通过使用上面的代码并且不隐藏任何字段,我得到了以下结果

在此处输入图像描述

但我的期望是

在此处输入图像描述

在此处输入图像描述

我期待以下输出。

在此处输入图像描述

看起来这可能是一些布局问题,或者我可能需要应用一些 CSS 样式来处理这个问题。有人可以帮我解决这个问题。

标签: extjs

解决方案


能够通过使用以下代码解决此问题:

otherProviderField.ownerCt.doLayout();

推荐阅读