2014-10-21 6 views
0

Мне нужен идентификатор на вкладках, чтобы автор мог указать, какая вкладка будет открыта при загрузке страницы. Ниже мой диалог .xml.Выбор радиокнопки для Multifield

<items jcr:primaryType="cq:WidgetCollection"> 
        <typeconfigs 
          jcr:primaryType="cq:Widget" 
          fieldLabel="Accordion" 
          name="./options" 
          xtype="customconfigmultifield"> 
         <fieldConfigs jcr:primaryType="cq:WidgetCollection"> 
          <option 
            jcr:primaryType="cq:Widget" 
            hidden="{Boolean}true" 
            name="option_name" 
            xtype="textfield"/> 
          <optionval 
            jcr:primaryType="cq:Widget" 
            allowBlank="{Boolean}false" 
            fieldLabel="Title" 
            maxLength="{Long}60" 
            name="optionval" 
            xtype="textfield"/> 
          <openaccordion 
            jcr:primaryType="cq:Widget" 
            name="selectaccordion" 
            type="radio" 
            xtype="selection"> 
           <options jcr:primaryType="cq:WidgetCollection"> 
            <one 
              jcr:primaryType="nt:unstructured" 
              text="Open at Page Load" 
              value="in"/> 
           </options> 
          </openaccordion> 
         </fieldConfigs> 
         <limit 
           jcr:primaryType="nt:unstructured" 
           maxVal="{Long}15"/> 
        </typeconfigs> 
       </items> 

Но теперь я не получаю поведение кнопки радио, значит, я могу отметить все радио кнопки внутри каждой вкладки, которые я добавить через диалог. Любая идея, как я могу сделать этот переключатель возможным. Спасибо enter image description here

+0

Непосредственный ответ на ваш вопрос, но идея разложения: Держите multifield только для хранения названий и создавайте отдельный виджет, радио или даже выбор (лучше UX, вероятно), в котором будут перечислены все заголовки. Вам нужно будет написать пользовательский 'optionsProvider', но это не должно быть проблемой. –

ответ

0

Радиокнопка, как определено в вашей текущей структуре, нуждается в двух вариантах, а значение поля будет переключаться между двумя параметрами. Если вы хотите просто показать один вариант, я бы рекомендовал использовать checkbox.

Я попытался ответить на ваш вопрос, предположив, что вы решили использовать флажок (который имеет два состояния: true и false). Если вы решили добавить второй переключатель, вы можете изменить значения true и false на значения, которые вы определили; (Один из которых является in)

Что вы ищете это набор пользовательских слушателей, которые

я) итерацию по каждому многопрофильному пункту, проверив значение <openAccordion> на данный момент щелкнули многопрофильный пункт.

б) Установите его в true для текущего элемента

III многопрофильном) установить значение <openAccordion> в false для всех других многопрофильных элементов.

Событие, которое вам потребуется, это selectionchanged.

После того, как вы убедиитесь, что свойства становятся установлены правильно, все, что вам нужно, это еще один слушатель, который запускает на loadcontent событии, которое выглядит для многопрофильного элемента со значением <openAccordion> как true и показывает, что вкладки, скрывая остальной.

Как, в остальном, на мой взгляд, вы можете изменить структуру своего диалога, что-то похожее на то, что @Mathew опубликовал в своем комментарии.

Смежные вопросы