2017-06-07 17 views
1

私はADFで作業しています。ドロップダウンの値ごとにマウスのホバー上にヘルプテキストを表示する必要があります。私はずっと苦労しましたが、モデルレイヤーでは何もできませんでした。最後に、私はストリングELの演奏で終わりました。ADF selectOnechoiceアイテムにラベルを表示する方法

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

私の問題は、選択した項目は、それが唯一の値が表示されているサブストリング表示されないです。私はvaluePassThroughを使用しましたが、運はありませんでした。

+0

af:tableコンポーネントのaf:selectOneChoiceですか? ラベルにはrow.bindings.Name.labelを使用しましたが、shortDescにはbindings.DOCContractLetterUIConfig1.hints.Name.tooltipを使用しました。 panelCollection構造体を完全に共有できますか? – KEYSAN

+0

完全なコードで質問を更新しました。 – user1111351

+0

選択したアイテムにはラベルが表示されませんか? bindings.LetterAttributeLOV.rangeSetまたはrow.bindings.Name.items? – KEYSAN

答えて

1

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); 
      } 

このリストを1つの選択コンポーネントに選択します。

<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

私は解決策を得ました。私はLOVの代わりにツリーバインディングを使用しています。異なる値のヘルプテキストを表示できるコンポーネントIDを解析することによって、 – user1111351

関連する問題