Bezdepbonusu7Программирование: статьи и ответы

Вопрос

ADF selectOneвыберите, как отображать метку в элементах

Автор вопроса: user1111351Ответов: 1

Я работаю над АДФ. Мне нужно отображать текст справки при наведении мыши для каждого значения раскрывающегося списка. Я много боролся, но не нашел, что делать в слое модели. Наконец, я закончил играть со строковым выражением EL.

<af:table value="#{bindings.LetterUIConfig1.collectionModel}" rendered="false"
        width="98%" styleClass="AFStretchWidth" var="row"
        rows="#{bindings.LetterUIConfig1.rangeSize}"
        emptyText="#{bindings.LetterUIConfig1.viewable ? 'No data to display.' : 'Access Denied.'}"
        fetchSize="#{bindings.LetterUIConfig1.rangeSize}"
        rowBandingInterval="0" id="t1" columnStretching="column:c1"
        inlineStyle="border-style:hidden;" horizontalGridVisible="false"
        verticalGridVisible="false">
<af:column sortProperty="#{bindings.LetterUIConfig1.hints.Name.name}"
           sortable="false" id="c1" noWrap="false" headerText="">
  <af:panelFormLayout id="pfl1" labelWidth="40%" fieldWidth="60%"
                      maxColumns="1" labelAlignment="start">
    <af:panelLabelAndMessage label="#{row.Name}" id="plam1"
                             styleClass="alignLeft"
                             labelStyle="text-align: left;">
      <af:panelGroupLayout id="pgl1">

        <af:selectOneChoice value="#{row.bindings.Name.inputValue}"
                            label="#{row.bindings.Name.label}"
                            required="#{bindings.LetterUIConfig1.hints.Name.mandatory}"
                            shortDesc="#{bindings.LetterUIConfig1.hints.Name.tooltip}"
                            id="soc1">
            <af:forEach items="#{bindings.LetterAttributeLOV.rangeSet}" var="list">
                <af:selectItem id="si1" value="#{list.AttVal}"/>
          </af:forEach>
        </af:selectOneChoice>
        <af:selectBooleanCheckbox value="#{row.bindings.Name.inputValue}"
                                rendered="#{row.Type eq 'SBC'}"
                                label="#{row.bindings.Name.label}"
                                shortDesc="#{bindings.LetterUIConfig1.hints.Name.tooltip}"
                                id="sbc1"/>
      <af:selectManyCheckbox label="#{row.Name}" id="smc1"
                             rendered="#{row.Type eq 'SMC'}">
        <f:selectItems value="#{row.bindings.Name.items}" id="si2"/>
      </af:selectManyCheckbox>
      </af:panelGroupLayout>
    </af:panelLabelAndMessage>
  </af:panelFormLayout>
  <af:spacer id="s1" height="10"/>
</af:column>

My problem is select item is not displaying substring it is displaying only value. I did use valuePassThrough but no luck.

  • af:selectOneChoice в компоненте af:table? Вы использовали row.bindings.Name.label для метки, но bindings.DOCContractLetterUIConfig1.hints.Name.tooltip использовался для shortDesc. Не могли бы вы поделиться полной структурой panelCollection? KEYSAN 12.06.2017
  • Обновленный вопрос с полным кодом. user1111351 12.06.2017
  • какой выбранный элемент не показывает метку? bindings.LetterAttributeLOV.rangeSet или row.bindings.Name.items? KEYSAN 12.06.2017
  • Выберите один вариант не отображается. Код здесь отсутствует, но у меня есть метка. user1111351 12.06.2017

oracle-adf

Ответы

Ответ 1 · рейтинг 1 · KEYSAN

Попробуйте определить метод для инициализации в itemList;

public List getSelectItemList(){
    ArrayList list = new ArrayList();
    Iterator<Object> iterator = resolveExpression("#{bind here your LOV}");
        while (iterator.hasNext()) {
          Object obj= iterator.next();
          list.add(new SelectItem(enterObjValue, enterObjValueLabel));
        }
        return list;
      }

 public Object resolveExpression(String expression) {
            FacesContext fc = getFacesContext();
            ELContext elCtx = fc.getELContext();
            return fc.getApplication().getExpressionFactory().createValueExpression(elCtx, expression, Object.class).getValue(elCtx);
          }

и привяжите этот список к выбору одного компонента выбора.

 <af:selectOneChoice value="#{row.bindings.Name.inputValue}"
                        label="#{row.bindings.Name.label}"
                        required="#{bindings.LetterUIConfig1.hints.Name.mandatory}"
                        shortDesc="#{bindings.LetterUIConfig1.hints.Name.tooltip}"
                        id="soc1">
      <f:selectItems value="#{yourBean.selectItemList}"
                           id="sadsadsa"/>
    </af:selectOneChoice>

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы