2012-06-11 38 views
0

在我的JSF項目中,我使用PrimeFaces的Menu組件通過ajax調用來更新我的UI頁面的中心組件(UI頁面的中心部分)。JSF:在通過AJAX調用更新視圖後立即調用javaScript方法

<p:menubar> 
<p:submenu label="Actions"> 
    <p:submenu label="Create Privilege"> 
     <p:menuitem value="Create Administrative Privilege" actionListener="#{leftNavigationBean.selectCenterComponent}" update=":centerPanel"> 
      <f:attribute name="centerComponentName" value="/CreateAdminPrivilege.xhtml" /> 
     </p:menuitem> 
     <p:menuitem value="Create Access Privilege" actionListener="#{leftNavigationBean.selectCenterComponent}" update=":centerPanel"> 
      <f:attribute name="centerComponentName" value="/CreateAccessPrivilege.xhtml" /> 
     </p:menuitem> 
    </p:submenu> 
</p:menubar> 

現在該組件後,由AJAX調用得到更新,之後我想調用JavaScript函數做一些操作爲我所更新的組件。

我已經嘗試在正在獲取更新的頁面正文OnLoad()上調用JavaScript函數,例如,在操作菜單操作 - >創建權限 - >當CreateAdminPrivilege.xhtml進入視圖,在這個頁面正文OnLoad()我試着調用JavaScript方法,但它沒有被調用,因爲我想這個頁面的ajax調用。

所以我需要找出調用這個AJAX調用更新的JavaScript方法的方法。 幫我解決這個問題...

在此先感謝。

回答

4

您可以使用p:menuItemoncomplete屬性此:

<p:menuitem ... oncomplete="doSomething()"> 

如果你想成功之間的進一步區分和ajax呼叫錯誤,請使用onsuccessonerror att肋骨:

<p:menuitem ... onsuccess="doSomething()" onerror="doSomethingElse()"> 
0

jsf js api

例如:

jsf.ajax.addOnEvent(function(data){ 
    if (data.status== 'success') { 
     // do stuff 
    } 
});