Question

J'ai essayé de créer un lien dans chaque ligne d'un datable comme ça:

        <f:view>
        <h:form>
            <p:dataTable id="TasksList"
                         value="#{TaskController.tasks}"
                         var="task"
                         rendered="#{TaskController.currentCorbeilleId != null}">
                <p:column>
                    ...
                </p:column>
                <p:column>
                    ...
                </p:column>
                <p:column>
                    ...
                </p:column>
                <p:column>
                   ...
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Link" />
                    </f:facet>
                    <h:commandLink value="GO" action="goToTask">
                        <f:setPropertyActionListener value="#{task.id}" target="#{TaskController.currentTaskId}"/>
                    </h:commandLink>
                </p:column>
            </p:dataTable>
        </h:form>
    </f:view>

Mais cela ne fonctionne pas. Lorsque je clique sur « GO » la page en cours ... seulement rechargements J'ai essayé de copier / poster cette partie du code en dehors du datatable:

<h:commandLink value="GO" action="goToTask">
    <f:setPropertyActionListener value="#{task.id}" target="#{TaskController.currentTaskId}"/>
</h:commandLink>

Et dans le cas le lien fonctionne. Comment puis-je faire pour rendre cela fonctionne dans le datatable?

Merci pour vos réponses,

Martin

Était-ce utile?

La solution

Essayez de mettre votre grain de TaskController dans le périmètre de view. J'ai eu des problèmes similaires si le grain contenant la collection pour datatable a été request scope!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top