Зачемсделать все строки такими же, как значение "выбранная строка"? - PullRequest
0 голосов
/ 09 апреля 2011

У меня ArrayList Collection правильно переносит значения, но проблема, когда я рендерил его в теге h: dataTable , все строки становятся одинаковыми, как на рисунке.

enter image description here

<h:dataTable value="#{contactController.contacts }" var="contact"
            rowClasses="oddRow, evenRow" styleClass="contactTable"
            headerClass="headerTable" columnClasses="normal,centered"
            rendered="#{not empty contactController.contacts }">
            <h:column>
                <f:facet name="header">
                    <h:column>
                        <h:outputText value="Name" />
                    </h:column>

                </f:facet>
                <h:outputText
                    value="#{contactController.contact.firstName }#{ contactController.contact.secondName }" />
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:column>
                        <h:outputText value="Action" />
                    </h:column>
                </f:facet>
                <h:panelGrid columns="2">
                    <h:commandLink value="remove"
                        action="#{contactController.remove }">
                        <f:setPropertyActionListener value="#{contact }"
                            target="#{contactController.selectedContact }" /> 
                    </h:commandLink>
                    <h:commandLink value="edit" action="#{contactController.read}">
                        <f:setPropertyActionListener value="#{contact }"
                            target="#{contactController.selectedContact }" />
                    </h:commandLink>
                </h:panelGrid>
            </h:column>
        </h:dataTable>

Есть предложения?.

1 Ответ

2 голосов
/ 09 апреля 2011

Я думаю, что с вашим кодом есть две проблемы.

Во-первых, вам не нужно имя компонента в ваших столбцах.Просто используйте содержимое атрибута var (в вашем случае «contact», а не «contactController.contact»)

Second: h:column внутри f:facet неверно.Поместите h:outputText непосредственно в f:facet.

Измените свой первый столбец следующим образом:

<h:column>
  <f:facet name="header">
     <h:outputText value="Name" />
  </f:facet>
  <h:outputText value="#{contact.firstName} #{contact.secondName }" />
</h:column>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...