У меня есть пользовательский интерфейс: повторение предметов аукциона внутри таблицы.Это обычная HTML-таблица, потому что когда вы нажимаете на ссылку Bid commandLink, строка открывается прямо под выбранным предметом аукциона и отображает компонент ставок.Bid commandLink использует ajax следующим образом:
<f:ajax listener="#{bean.addBidView(lot)}" render="bidView" />
addBidView обновляет карту auctionItems, и именно так открывается правильная выбранная строка.Когда пользователь снова нажимает на ту же ссылку Bid, addBidView выясняет ее и закрывает компонент назначения ставок.
Теперь предположим, что пользователь нажимает на несколько строк и открывает несколько компонентов назначения ставок.Все они открыты, но активен только один.Итак, вот мой вопрос: как получить весь цикл для рендеринга, когда я использую вышеуказанный ajax, чтобы открытие компонента назначения ставок автоматически закрывало другие открытые.(Карта предметов аукциона отражает правильный компонент ставок, но отображается только эта одна область ставок, поэтому другие не выполняются. Если я обновляю всю страницу, отображение корректно, и проблема возникает только тогда, когда яЯ использую ajax.)
Это структура элементов на странице (все это внутри h: form :)
<table id="bidstable">
<h:panelGroup id="entireLoop">
<ui:repeat id="repeatAuctionItems" var="auctionItem" varStatus="status" value="#{bean.auctionItems}">
<td>... a bunch of td's with the auction item values ... and then:
<h:commandLink id="bid" rendered="#{some conditions}">
<f:ajax listener="#{bean.addBidView(auctionItem)}" render="bidView"/>
</h:commandLink>
</td>
</ui:repeat>
</h:panelGroup>
</table>
Я пробовал почти все комбинации элементовв "render" - например:
render="bidView bidsTable"
или render = "bidView bidsTable: wholeLoop: repeatateAuctionItems"
и любой другой след, который я могу придумать.Ничего не работаетЕсть идеи?