У меня есть следующий код, использующий PrimeFaces 3.0.M3, Tomcat 7 и Mojarra 2.1.3.
<p:dataGrid columns="1" var="answer" value="#{answersbysubject}">
<p:column>
<p:panel columns="1">
<h:outputText value="#{answer.question.name}" />
<p:dataGrid columns="5" var="selection" value="#{brain.selections}">
<p:column>
<h:panelGrid columns="1" styleClass="selections" id="mySelection">
<h:outputText value="#{selection.name}" />
<p:commandLink update="mySelection">
<p:graphicImage value="/img/CheckboxFull.png" rendered="#{selection == answer.selection}" />
<p:graphicImage value="/img/CheckboxEmpty.png" rendered="#{selection != answer.selection}" />
<f:setPropertyActionListener value="#{selection}" target="#{answer.selection}" />
</p:commandLink>
</h:panelGrid>
</p:column>
</p:dataGrid>
</p:panel>
</p:column>
</p:dataGrid>
извините, если слишком многословен ... Дело в том, что я хочу реализоватьболее приятный 5-позиционный флажок (работает как набор радиокнопок).
Все отлично работает на стороне сервера, за исключением того, что когда я нажимаю другой флажок, он переопределяет ТОЛЬКО флажок, который я только что нажал.То есть я вижу два отмеченных флажка - старый не снимается, пока я не обновлю F5 в браузере.
Я попытался присвоить идентификаторы каждому тегу, а затем позволил команде commandLink обновить все, но больше ничегочем обновляется текущий флажок :( Идентификаторы строки таблицы, вероятно, перепутаны во время динамической генерации. Вот почему никакие другие теги не могут быть надежно найдены / идентифицированы для обновления? Если это ситуация, то каким было бы решение длямне обновить ТОЛЬКО текущую строку таблицы (не только текущую ячейку таблицы, как сейчас ...)?
Большое спасибо!