2017-06-07 3 views
1

Ich arbeite an ADF. Ich muss den Hilfetext anzeigen, wenn ich den Mauszeiger für jeden Wert des Dropdown-Menüs bewege. Ich hatte viel Probleme, aber ich fand nichts in der Model-Ebene. Endlich spielte ich mit dem String EL Ausdruck.ADF selectOnechoice, wie Sie das Etikett in Artikeln anzeigen

<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> 

Mein Problem ist, wählen Sie den Punkt ist String nicht anzeigt es nur Wert angezeigt wird. Ich habe ValuePassThrough verwendet, aber kein Glück.

+0

ist af: selectOneChoice in der af: Tabellenkomponente? Sie haben row.bindings.Name.label für label aber bindings.DOCContractLetterUIConfig1.hints.Name.tooltip für shortDesc verwendet. Könnten Sie eine vollständige panelCollection-Struktur freigeben? – KEYSAN

+0

Aktualisierte Frage mit vollem Code. – user1111351

+0

Welches Element wird nicht angezeigt? bindings.LetterAttributeLOV.rangeSet oder row.bindings.Name.items? – KEYSAN

Antwort

1

Versuchen Sie eine define-Methode für die Initialisierung auf 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); 
      } 

und binden Sie diese Liste an Wählen Sie eine Auswahlkomponente aus.

<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> 
+0

Ich habe die Lösung. Ich verwende Baumbindung anstelle von LOV. und durch Analysieren der Komponenten-ID, die Hilfstext mit unterschiedlichem Wert anzeigen kann. – user1111351

Verwandte Themen