0

在我的 JSF 项目中,我使用 PrimeFaces 的 Menu 组件通过 ajax 调用更新我的 UI 页面的中心组件(UI 页面的中心部分)。

<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 函数,例如在 Action Menu Action -> Create Privilege -> 当 CreateAdminPrivilege.xhtml 出现时,在此页面正文 OnLoad() 我尝试调用 JavaScript 方法但它没有被调用,因为我猜是对这个页面的 ajax 调用。

所以我需要弄清楚调用这个 AJAX 调用更新的 JavaScript 方法的方法。帮我解决这个...

提前致谢。

4

2 回答 2

4

您可以为此使用p:menuItem'属性:oncomplete

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

如果想进一步区分ajax调用的成功和错误,使用onsuccessoronerror属性:

<p:menuitem ... onsuccess="doSomething()" onerror="doSomethingElse()">
于 2012-06-11T10:29:33.987 回答
0

请参阅jsf js api

例如:

jsf.ajax.addOnEvent(function(data){
    if (data.status== 'success') {
        // do stuff
    }
});
于 2012-06-11T10:21:59.783 回答