ADF Cascading Lov Search и выбор настроек всплывающих окон

Я построил каскадный LOV с полями группы и деления (поле со списком значений). Когда я выбираю значение для группы и нажимаю на Search and Select В диалоговом окне для поля "Разделение" всплывающее окно "SearchAndSelect" имеет в качестве критериев поиска поля "Группа" и "Разделение" (как определено в моих критериях просмотра).

Теперь, есть ли способ заполнить значение Group в критериях всплывающего окна, я знаю, что предложение where использует уже введенное значение Group, но я хочу показать его пользователю в области поиска всплывающих окон SearchAndSelect.

1 ответ

Не существует декларативного способа предварительной установки значений поля поиска в всплывающем окне lov. Хотя это можно сделать с помощью пользовательского launchPopupListener для компонента lov. Чтобы узнать больше о том, как использовать всплывающие слушатели lov, обратитесь к разделу Создание пользовательских Lovs.

Создайте метод launchPopupListener для вашей зависимой любви.

<af:inputComboboxListOfValues id="inpClv2" popupTitle="Search and Select: #{bindings.StateProvince.hints.label}" value="#{bindings.StateProvince.inputValue}" label="#{bindings.StateProvince.hints.label}" model="#{bindings.StateProvince.listOfValuesModel}" required="#{bindings.StateProvince.hints.mandatory}" columns="#{bindings.StateProvince.hints.displayWidth}" shortDesc="#{bindings.StateProvince.hints.tooltip}" partialTriggers="inpClv1" launchPopupListener="#{backingBeanScope.lovBean.stateLaunchPopupListener}"> </af:inputComboboxListOfValues>

В launchPopupListener установите значение атрибута критерия поиска со значением first lov.

public void stateLaunchPopupListener(LaunchPopupEvent launchPopupEvent)
{
    UIXInputPopup lovComponent = (UIXInputPopup)launchPopupEvent.getSource();
    ListOfValuesModel model = lovComponent.getModel();
    if (model != null)
    {           
        QueryDescriptor queryDesc = model.getQueryDescriptor();
        /** Code to pre populate a Search and Select field**/
        ConjunctionCriterion conCrit = queryDesc.getConjunctionCriterion();
        List<Criterion> criterionList = conCrit.getCriterionList();
        for (Criterion criterion: criterionList)
        {
            AttributeDescriptor attrDesc = ((AttributeCriterion) criterion).getAttribute();
            if (attrDesc.getName().equalsIgnoreCase("CountryId")) 
            {
                List values = ((AttributeCriterion) criterion).getValues();
                values.set(0, "US"); //use the value from first lov
            }
        }
    }           
}
Другие вопросы по тегам