Как указать порядок, в котором применяются выбор rich: extendedDataTable и значение h: selectOneMenu - PullRequest
1 голос
/ 18 февраля 2011

Я работаю над приложением, которое в основном является специализированным инструментом администрирования базы данных.

Структура страницы в основном следующая:

<a4j:region>
  <h:selectOneMenu value='#{bean.selectedTable}'>
    ...
     <a4j:ajax event='change' render='tablePanel'/>
  </h:selectOneMenu>
  <a4j:outputPanel id='tablePanel'>
    <rich:extendedDataTable id='table' selection='#{bean.selectedRows}' ...>
      <f:facet name='header'>
        [datascroller etc.]
        <a4j:commandButton action='#{bean.deleteSelectedRows}' execute='@region' render='tablePanel'/>
      </f:facet>
      [columns]
    </rich:extendedDataTable>
  </a4j:outputPanel>
<a4j:region>

selectOneMenu используется для выбора таблицы базы данных. Основным компонентом является область запроса и он настроен на выбор первой доступной таблицы по умолчанию при ее инициализации. Я использую подкласс ExtendedDataTable для разбивки данных в базе данных.

Когда я нажимаю commandButton, чтобы удалить строки, кажется, что компонент extendedDataTable определяет выбранные строки / до /, к которым применяется значение bean.selectedTable. Это означает, что независимо от того, какая таблица выбрана в раскрывающемся меню, RichFaces сообщает мне, что выбранные строки являются некоторыми (более или менее произвольными) строками в таблице базы данных по умолчанию.

Я проверил, что это проблема упорядочения, когда вызывается deleteSelectedRows (), значение selectedTable является правильным. Я использую Richfaces 4 M6 и a4j: похоже, что keepAlive больше не существует для сохранения состояния компонента.

Есть ли способ сообщить RichFaces / JSF, в каком порядке делать эти вещи? Я попытался использовать немедленный = "true" для h: selectOneMenu, но это не помогло.

Кроме того, после удаления tablePanel, похоже, не перерисовывается, тогда как другой a4j: commandButton, который добавляет новые записи с такими же атрибутами execute и render, кажется, работает нормально. Есть ли способ отладить состояние ajax-запросов / перехватов RichFaces через них?

...