JSF/ADF/PPR не может обновить страницу, как ожидалось

У меня возникают проблемы с JSF/ADF/PPR при неправильном обновлении страницы. У меня есть selectManyCheckBox с 5 параметрами, один из которых - «Все». Если пользователи отметят этот флажок, я должен отметить все остальные.

<h:panelGrid styleClass="myBox leftAligned" id="applyChangesBox">
            <af:selectManyCheckbox id="changesCheckedBox" 
                   autoSubmit="true" label="Hello: "
                   value="#{updateForm.applyChangesList}" 
                   valueChangeListener="#{updateForm.testValueChanged}">
              <af:selectItem value="A" label="All Changes"/>
              <af:selectItem value="R" label="Residential Address"/>
              <af:selectItem value="M" label="Mailing Address"/>
              <af:selectItem value="P" label="Personal Phone/Fax Numbers"/>
              <af:selectItem value="E" label="Personal Email Addresses"/>
            </af:selectManyCheckbox>
            <af:outputText value="#{updateForm.testValue}" partialTriggers="changesCheckedBox"/>
          </h:panelGrid>

Я использую valueChangeListener, чтобы я мог видеть, как мой bean-компонент обновляется и распечатывается правильно, но моя страница не обновляется и не проверяет все остальные флажки, если мне нужно.


person Nhut Le    schedule 26.03.2010    source источник


Ответы (2)


Попробуйте следующее:

  1. Не используйте valueChangeListener. Переместите свою логику в метод setApplyChangesList() вашего компонента.
  2. Добавьте partialTriggers="changesCheckedBox" к выбору одного варианта.
  3. ИЛИ замените <h:panelGrid/> компонентом ADF и установите для него атрибут partialTriggers, чтобы его не было на selectManyCheckbox и outputText

OR

Замените selectManyCheckbox на selectManyList и используйте атрибут selectAllVisible, который, кажется, делает то, что вы хотите.

Эти новые шпаргалки великолепны! http://www.oracle.com/technology/products/adf/adffaces/11/doc/cheatsheet/lovs.html

person Billy Bob Bain    schedule 02.04.2010

Я знаю, что вопрос очень старый, но, возможно, у других все еще есть эта проблема. Лучше поместить partialTrigger в родителя, а не в сам вывод. Таким образом, родительская панель перерисовывается вместе с выводом. Во-вторых, хорошей идеей будет установить поле «id» компонентов, которые должны реагировать на триггеры.

person Ana Vinatoru    schedule 06.04.2014