Как я могу перерисовать целый ряд в сетке данных? - PullRequest
1 голос
/ 25 октября 2011

У меня есть следующий код, использующий 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 обновить все, но больше ничегочем обновляется текущий флажок :( Идентификаторы строки таблицы, вероятно, перепутаны во время динамической генерации. Вот почему никакие другие теги не могут быть надежно найдены / идентифицированы для обновления? Если это ситуация, то каким было бы решение длямне обновить ТОЛЬКО текущую строку таблицы (не только текущую ячейку таблицы, как сейчас ...)?

Большое спасибо!

...