2017-03-17 1 views
0

LOC_CODE、LOC_DESC、CITY_DESCという3つの値を含むビュー・オブジェクトを作成したユース・ケースがあります。私のADFフォームでは、3つの値すべてをこのように表示して、ユーザーがLOC_CODEからポップアップ(LOV)を選択し、2つのフィールドを残すようにしたいと考えています。LOC_DESC & CITY_DESCを適宜変更する必要があります。現在のところ、ポップアップには3つの値がすべて表示されていますが、行を選択して[OK]ボタンをクリックすると、LOC_CODEが1つのテキストボックスにのみ埋められます。 以下は同じもののシナリオです: enter image description hereOracle ADF LOV複数のテキスト・フィールドへの値バインディング

答えて

0

解決方法が見つかりました。テキストボックスを追加するか、それぞれのフィールドの近くでドラッグアンドドロップし、必要なバインディングオブジェクトでバインドするだけです。例えば、この場合LOC_DESC & CITY_DESCはデータコントロールでDefLoc & DefCityとして使用できます。DefCityにはそれぞれの説明値を取得するためのSQLが含まれています。 DefLoc & DefCityをドラッグアンドドロップすると、バインディングが自動的に実行されるか、値のバインディングがチェックされます。

0

ロケーションコードにvaluechangelistenerを追加する必要があります。 autosubmitをtrueに設定します。コード次バッキングBeanの使用に今

public void valuechangelistener(ValueChangeEvent valueChangeEvent) { 
    valueChangeEvent.getComponent().processUpdates(FacesContext.getCurrentInstance()); 
    BindingContext bctx = BindingContext.getCurrent(); 
    BindingContainer bindings = bctx.getCurrentBindingsEntry(); 
    JUCtrlListBinding list = (JUCtrlListBinding)bindings.get("LOC_CODE"); 
    String selectedValue = (String)list.getAttributeValue(); 
    list.getListIterBinding().setCurrentRowWithKeyValue(selectedValue); 
    Row currRow = list.getListIterBinding().getCurrentRow(); 

    if (currRow != null) { 
     bndloc_desc.setValue(currRow.getAttribute("LOC_DESC")); 
     bndcity_desc.setValue(currRow.getAttribute("CITY_DESC")); 

    } 
} 

についてLOC_CODEのIDと位置DESC及び都市DESC両方に部分的にトリガを設定します。 これを実行すると、目的の結果が得られます。

更新後に更新されます。私の場合は、JDeveloperの

関連する問題