2013-10-01 101 views
0

我有一個使用OnClick函數的p:Menuitem頁面。 我的問題是,當我刷新頁面,事件onclick仍在運行,我怎麼能阻止它?如何在刷新頁面時停止調用onclick函數?

客戶端代碼:

<p:submenu label="Ordres de Fabrication" styleClass="submenustyle" > 
    <p:submenu label="Ordre non Réalisé"> 
    <p:menuitem value="Afficher" outcome="/admin/gestionduplanning/ofnonrealiseAfficher.xhtml" onclick="#{ofrealiser.getofnonrealiser()}" /> 
    <p:menuitem value="Ajouter" outcome="/admin/gestionduplanning/ofnorealiseAjouter.xhtml" /> 
    </p:submenu> ... 

更新1:

<p:menuitem value="Afficher" outcome="/admin/gestionduplanning/ofnonrealiseAfficher.xhtml" onclick="#{ofrealiser.getofnonrealiser()}" actionListener="#{exporterPlanningGlobal.refreshfromjsfdateplanning()}" /> 

管理bean梅索德:

public void refreshfromjsfdateplanning() 
    { 
    System.out.println("Test actionlistener"); 
    } 

,但在我的IDE GlassFish的,因爲所謂的梅索德心不是它沒有打印任何東西。

如何讓actionlistner工作?

更新2:

我發現,當我刪除的動作聽者工作菜單中的結果..但是當我使用的結果或URL去一個網頁沒有工作,如何解決呢?

回答

2

onclick和oncomplete都只能用於調用JavaScript事件處理程序

如果您想在點擊菜單項時調用服務器上的某些內容,請使用actionListener。 作爲一條邊線,當然刷新頁面時,onclick中的代碼會觸發,因爲jsf表達式是在頁面呈現階段評估的。

您可以找到Primefaces Demo

+0

可以給我一個例子添加actionlistener,因爲我這樣使用它,但沒有工作:'' – marouanoviche

+0

那麼它是什麼意思」它不會工作「?該方法未被調用?此外,爲什麼不使用與上述相同的方法,onclick調用該方法?還發布該方法的一些代碼... – spauny

+0

你能看到我的更新嗎? – marouanoviche

0

工作的例子,我發現我的問題的解決方案:與對導航之前做了處理:菜單項:

<p:menuitem value="Exporter tous les plannings" styleClass="submenustyle" action="#{exporterPlanningGlobal.refreshfromjsfdateplanning}" update="@form"/> 

和管理的Bean梅索德:

public String refreshfromjsfdateplanning() 
    { 
    System.out.println("treatment done"); 
return "/espaceZP01/gestionduplanning/exporterTousPlanning.xhtml?faces-redirect=true"; 
    } 
+0

是的,通過採取行動......這就是我剛剛對你說的! – spauny

+0

是的spauny只是我改變了actionlistner行動。感謝您的幫助 。 – marouanoviche

+0

@marouanviche真的嗎? – spauny

相關問題