首页 > 解决方案 > Primefaces p:poll 破坏了“渲染”功能

问题描述

我有一个带有 ajax 事件的下拉菜单来隐藏/显示基于“渲染”属性的另一个组件。

它工作正常,直到调用来自另一个组件的 p:poll - ajax 事件不会切换“airportPickupWrapper”(尽管我可以在网络中看到 ajax 请求)

组件 1:

<h:outputLink id="unresolvedOrdersCount" value="#{navigationMenuBean.setPage('management/orderManagement')}" style="color : red">
            New orders : #{headerController.getUnresolvedOrdersCount()}
</h:outputLink>

<p:poll interval="10" update="unresolvedOrdersCount"/>

组件2:

<h:selectOneMenu id="orderTypeDropdown" value="#{orderController.order.orderType}">
    <f:selectItems value="#{orderController.orderTypes}"
                   var="orderType"
                   itemLabel="#{orderType.displayName}">
    </f:selectItems>
    <p:ajax event="change" update="airportPickupWrapper"/>
</h:selectOneMenu>
<p:panel id="airportPickupWrapper" >
    <h:panelGrid columns="1" rendered="#{orderController.order.orderType.name() == 'AIRPORT_PICKUP'}">
        <p:outputLabel for="flightNumber" value="Flight number: " />
        <p:inputText id="flightNumber" value="#{orderController.order.flightNumber}">

        </p:inputText>
    </h:panelGrid>
</p:panel>

谢谢你的建议

编辑:如果我更改组件 1 使其不调用支持 bean,则一切正常

<h:outputLink id="unresolvedOrdersCount"></h:outputLink>

标签: ajaxprimefacesselectonemenu

解决方案


解决了。

问题是我使用了 h:outputLink,其中 xmlns:h="http://xmlns.jcp.org/jsf/html"。我将它切换到 p:link (xmlns:p="http://primefaces.org/ui") 并且一切正常。

有人会认为它是兼容的。

谢谢你。


推荐阅读