Невозможно расположить элементы составного поля - PullRequest
0 голосов
/ 28 сентября 2019

Я использую 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
            }] 

Используя вышеуказанный код и , не скрывая ни одного поля Я получил следующий результат

enter image description here

Но я ожидаю, что

  • По умолчанию третье поле (текстовое поле)должен быть скрыт
  • При выборе значений Combobox следующие два поля должны быть видимыми / скрытыми.Например, если в раскрывающемся поле указано «Имя партнера поставщика», тогда должно быть видно только второе поле (поле моделирования) (показано ниже)

enter image description here

  • А если в раскрывающемся поле указано «Имя другого поставщика», то должно быть видно только третье поле (т. Е. Текстовое поле).Но я не могу достичь этой третьей цели.Я получаю следующий вывод для этого (поле переопределяется)

enter image description here

И я ожидаю следующий вывод.

enter image description here

Похоже, это может быть какая-то проблема с макетом или, возможно, мне нужно применить какой-то стиль CSS для решения этой проблемы.Может кто-нибудь, пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 30 сентября 2019

В состоянии решить эту проблему, используя следующий код:

otherProviderField.ownerCt.doLayout();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...