J'ai une table de données primefaces dans laquelle le nombre d'enregistrements est affiché.
I want navigate to another page on the rowSelect event (to edit the selected entity for example)
.
L'exemple le plus proche que j'ai pu trouver est l'utilisation de la balise p:ajax pour lier l'événement rowSelect à une méthode d'écoute. http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionInstant.jsf
J'ai également reçu un article pour le même sujet http://forum.primefaces.org/viewtopic.php?f=3&t=14664
J'ai essayé de mettre en œuvre la même chose qu'eux, mais cela n'a pas fonctionné non plus.
J'essaie de procéder de cette manière et guidez-moi si j'ai oublié quelque chose.
<p:dataTable var="product" value="#{addPatientBB.patientAddList}" paginator="true" rows="10" selection="#{addPatientBB.pat}" selectionMode="single"> <p:ajax event="rowSelect" listener="#{addPatientBB.onRowSelect}" /> <p:column> <f:facet name="header"> <h:outputText value="FirstName" /> </f:facet> <h:outputText value="#{product.firstName}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Email" /> </f:facet> <h:outputText value="#{product.email}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Gender" /> </f:facet> <h:outputText value="#{product.gender}" /> </p:column> </p:dataTable>
Et le haricot d'accompagnement est :
@ManagedBean
@ViewScoped
public class AddPatientBB implements Serializable
{
private Patient pat;
public Patient getPat()
{
System.out.println("tried to get pat");
return pat;
}
public void setPat(Patient pat)
{
this.pat = pat;
System.out.println("tried to set pat");
}
public void onRowSelect()
{
System.out.println("inside onRow select Method");
ConfigurableNavigationHandler configurableNavigationHandler = (ConfigurableNavigationHandler) FacesContext.getCurrentInstance().getApplication().getNavigationHandler();
System.out.println("navigation objt created");
configurableNavigationHandler.performNavigation("Page?faces-redirect=true");
// Page is my navigation page where I wish to navigate named as
// "Page.xhtml"
System.out.println("Navigation executed");
}
}
Comment puis-je naviguer vers une autre page lors de l'événement rowselect ? et comment puis-je afficher ses valeurs après avoir navigué dans le formulaire.
Je suis capable d'aller à l'intérieur de la méthode onRowSelect(), en fait le problème est qu'il n'est pas capable d'obtenir ou de comprendre ce chemin :
configurableNavigationHandler.performNavigation("Page?faces-redirect=true") ;
il n'est donc pas en mesure d'imprimer des journaux après cette ligne. Pourquoi en est-il ainsi ? Est-ce parce que j'utilise Liferay ?
Pla me guide.