レコード数が表示されているprimefacesデータテーブルがあります。
I want navigate to another page on the rowSelect event (to edit the selected entity for example)
。
私が見つけた最も近いサンプル/デモは、p:ajaxタグを使用してrowSelectイベントをリスナーメソッドにバインドすることでした http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionInstant.jsf
同じhttp://forum.primefaces.org/viewtopic.php?f=3&t=14664の記事も1つあります。
、同じように実装しようとしましたが、うまくいきませんでした。
私はこのように試みており、何かを逃した場合は私を導きます。
<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>
そしてバッキングBeanは:
@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");
}
}
では、rowselectイベントで別のページに移動するにはどうすればよいですか?フォームをナビゲートした後、その値をどのように表示できますか。
私はonRowSelect()メソッドの中に入ることができます、実際の問題は彼がそのパスを取得または理解できないことです:
configurationNavigationHandler.performNavigation( "Page?faces-redirect = true");
そのため、この行の後にログを印刷することはできません。なんでそうなの?Liferayを使用しているからですか?
プラが案内してくれます。