Java Primefaces 4 commandButton oncomplete给出错误PF(…)。show不是函数

Java Primefaces 4 commandButton oncomplete给出错误PF(…)。show不是函数,java,primefaces,Java,Primefaces,我有下面的面板,当页面加载时,它如下所示: 单击未显示的表中的用户时,面板将更新,如下所示: 然后,当我单击“添加/删除组”按钮时,我希望会出现选择列表,但我在firebug控制台中看到错误: 这里怎么了 <p:panel id="userDetails" header="User Details" styleClass="panels-right" visible="#{groupBacking.currentTable == 'Users'}"> <u

我有下面的面板,当页面加载时,它如下所示:

单击未显示的表中的用户时,面板将更新,如下所示:

然后,当我单击“添加/删除组”按钮时,我希望会出现选择列表,但我在firebug控制台中看到错误:

这里怎么了

<p:panel id="userDetails" header="User Details" styleClass="panels-right" visible="#{groupBacking.currentTable == 'Users'}">
        <ui:fragment rendered="#{groupBacking.selectedUser != null}">
            <p:commandButton value="Add/Remove Groups" styleClass="ui-priority-primary" actionListener="#{groupBacking.populateGroupPicklist}" oncomplete="PF('groupPicklistWidget').show()" />

            <strong>User Id: </strong> <h:outputText value="#{groupBacking.selectedUser.ccsId}" /><br />
            <strong>First Name: </strong> <h:outputText value="#{groupBacking.selectedUser.firstName}" /><br />
            <strong>Last Name: </strong> <h:outputText value="#{groupBacking.selectedUser.lastName}" /><br />
            <strong>Active: </strong> <h:outputText value="#{groupBacking.selectedUser.active}" /><br />
            <strong>Groups: </strong> 
            <ui:repeat var="group" value="#{groupBacking.selectedUser.groups}">
                <h:outputText value="#{group.name}" /><br />
            </ui:repeat>
        </ui:fragment>

        <p:pickList widgetVar="groupPicklistWidget" id="groupPicklist" style="display: none;" value="#{groupBacking.picklistGroups}" var="group" 
                    itemLabel="#{group.name}" itemValue="#{group.name}" showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains">
            <f:facet name="available">Available</f:facet>
            <f:facet name="assigned">Assigned</f:facet>

            <p:ajax event="transfer" listener="#{groupBacking.onGroupTransfer}" update=":growl" />
        </p:pickList>

        <ui:fragment rendered="#{groupBacking.selectedUser == null}">
            <h:outputText value="Click a user to see their details" />
        </ui:fragment>
</p:panel>

用户Id:
名字:
姓氏:
活动:
组:
可用 分配
Primefaces 4 commandButton oncomplete给出错误PF(…)。show不是一个函数

我的demo.xhtml如下所示

  <html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jstl/core"
    xmlns:p="http://primefaces.org/ui">

<h:form id="demoForm">

   <p:commandButton id="hiddenSaveButton" value="AddRomove"
    action="display" oncomplete="duplicateCheckDialog.show()"
    style="float:right;"/>

    <p:dialog id="dialog" header="Account Creation" 
     widgetVar="duplicateCheckDialog" resizable="true"
 showEffect="bounce" hideEffect="fold" dynamic="true"
     appendToBody="false" >
 <div style="width: 100%" align="center">     
 <h:panelGrid id="display" columns="1" cellpadding="4">
 <div style="float: left; width: 300px;">
 <p:row>
 <h:outputLabel value="Account No. already exists.
     Please enter new Account No"  style="font-weight: bold"/>
 </p:row>
 <p:row>
 <p:commandButton id="backButton" title="Back"  action="backPage"
 value="Back" update=":demoForm:dialog" />
 </p:row>
   </div>
  </h:panelGrid>
   </div>
  </p:dialog>
 </h:form>
</html>

注意:在上面的示例中,我已经为该命令按钮标记提供了小部件变量id。
您可以直接调用
oncomplete=“duplicateCheckDialog.show()”
。PF不是必需的

我认为选择列表没有显示功能。若要显示选择列表,可以在对话框中使用。在这种情况下,oncomplete/onclick方法中的commandButton调用
groupDialogWidget
。示例代码如下所示:

 <p:commandButton value="Add/Remove Groups" styleClass="ui-priority-primary" actionListener="#{testManagedBean.populateGroupPicklist}" onclick="groupDialogWidget.show();"/>

只是想确定一下。对话框是否在hmtl页面中呈现?widgetVar分配是否正确?没有对话框。我只是想在点击按钮时,在按钮上的actionlistener完成后,使选择列表出现/消失。对不起,我指的是选择列表,而不是对话框。你确定你使用的是PF4而不是PF3.X?查看html页面并检查(Firebug或其他内容)是否正确分配了对picklist的widgetvar。
<p:dialog modal="true" showEffect="fade" hideEffect="fade" widgetVar="groupDialogWidget">
     <p:pickList widgetVar="groupPicklistWidget" id="groupPicklist" value="#{testManagedBean.picklistGroups}" var="group"
                                itemLabel="#{group.name}" itemValue="#{group.name}" showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains">
                        <f:facet name="available">Available</f:facet>
                        <f:facet name="assigned">Assigned</f:facet>


     </p:pickList>
</p:dialog>
style= "#{testManagedBean.showPicketlist eq true ? 'display: block' : 'display: none'}"