Dynamic List - один из способов построения списка выбора. Я хочу написать здесь о списке, который не будет иметь базового "Base Data Source", этот просто список выбора на форме из которого можно получить код (ИД) выбора и другие атрибуты, т.е. например когда нет задачи записать выбор в таблицу.
Вот об этом способе построения LOV я хочу немного написать.
Вначале совсем коротко о классическом Dynamic List. Если на атрибуте View Object не настроен LOV, а список выбора нужен, то его можно настроить как раз именно здесь. Выбираем базовый VO, источник, мапируем атрибуты и список готов, внешне он будет похож на другой тип "Model Driven List".
Но я хочу иметь просто список, без базового Data Source, который сохраняет выбор в переменную. Полезным это может быть на формах выбора множества критериев не для сохранения, а например для поиска. Делается это собственно так.
Заводит переменную
Теперь на форме можно разместить компонент список выбора и настроить его на подготовленный bindings
Теперь осталось считать, то что выбрали из списка, как правило нужен код (ИД). Вариантов несколько:
Можно через переменную
Через bindings списка
Тут важно использовать для получения кода именно - attributeValue
А вот так можно получить и название которое видно в списке.
Позицию в списке можно получить так
<af:outputLabel value="#{bindings.JobId.inputValue}" id="ol2" partialTriggers="soc1"/>
Пример формы
Таким образом считав выбор, его можно далее использовать в Java bean - е.
Вот об этом способе построения LOV я хочу немного написать.
Вначале совсем коротко о классическом Dynamic List. Если на атрибуте View Object не настроен LOV, а список выбора нужен, то его можно настроить как раз именно здесь. Выбираем базовый VO, источник, мапируем атрибуты и список готов, внешне он будет похож на другой тип "Model Driven List".
Но я хочу иметь просто список, без базового Data Source, который сохраняет выбор в переменную. Полезным это может быть на формах выбора множества критериев не для сохранения, а например для поиска. Делается это собственно так.
Заводит переменную
Добавляем ее bindings
Добавляем в bindings элемент "list"
из диалога выбираем тип "Select one value list that updates a base data source"
Настраиваем как показано ниже на рисунке
Теперь на форме можно разместить компонент список выбора и настроить его на подготовленный bindings
<af:selectOneChoice label="Label 1" value="#{bindings.JobId.inputValue}" id="soc1" autoSubmit="true"> <f:selectItems value="#{bindings.JobId.items}" id="si1"/> </af:selectOneChoice>
Теперь осталось считать, то что выбрали из списка, как правило нужен код (ИД). Вариантов несколько:
Можно через переменную
<af:outputLabel value="#{bindings.v11.attributeValue}" id="ol3" partialTriggers="soc1"/>
Через bindings списка
<af:outputLabel value="#{bindings.JobId.attributeValue}" id="ol1" partialTriggers="soc1"/>
Тут важно использовать для получения кода именно - attributeValue
А вот так можно получить и название которое видно в списке.
<af:outputLabel value="#{bindings.JobId.selectedValue eq null ? ''
: bindings.JobId.selectedValue.attributeValues[1]}" id="ol4" partialTriggers="soc1"/>
Позицию в списке можно получить так
<af:outputLabel value="#{bindings.JobId.inputValue}" id="ol2" partialTriggers="soc1"/>
Пример формы
Таким образом считав выбор, его можно далее использовать в Java bean - е.
Комментариев нет:
Отправить комментарий