Primefaces对话框关闭按钮不起作用

时间:2014-12-13 22:29:36

标签: jsf primefaces

我找不到这个问题的解决方案,为期1天。 当我单击关闭对话框上的按钮时,它什么都不做。 我试图添加modal =" false"那它有效。但在我的情况下,它应该是modal =" true" 防止用户点击屏幕上的任何其他位置。我错了什么? 谢谢你的时间。

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

<ui:define name="center">
    <h:form id="form">
        <p:growl id="msgs" showDetail="true" />

        <p:dataTable id="basicDT" var="user" value="#{userSelectionViewMB.users}">
            <f:facet name="header">
                <p:outputLabel value="#{menu['menu.admin.updateuser.list']}"/>
            </f:facet>
            <p:column headerText="#{menu['menu.admin.createuser.id']}">
                <h:outputText value="#{user.id}" />
            </p:column>
            <p:column headerText="#{menu['menu.admin.createuser.name']}">
                <h:outputText value="#{user.name}" />
            </p:column>
            <p:column headerText="#{menu['menu.admin.createuser.surname']}">
                <h:outputText value="#{user.surname}" />
            </p:column>
            <p:column headerText="#{menu['menu.admin.createuser.grade']}">
                <h:outputText value="#{user.grade}" />
            </p:column>
            <p:column style="width:32px;text-align: center">
                <p:commandButton update=":form:userDetail" oncomplete="PF('userDialog').show()" icon="ui-icon-search" title="View">
                    <f:setPropertyActionListener value="#{user}" target="#{userSelectionViewMB.selectedUser}" />
                </p:commandButton>
            </p:column>
        </p:dataTable>

        <p:dialog header="User Info" widgetVar="userDialog" modal="true" showEffect="fade" closable="true"
                  closeOnEscape="true" hideEffect="fade" resizable="false">
            <p:outputPanel id="userDetail" style="text-align:center;">
                <p:panelGrid  columns="2" rendered="#{not empty userSelectionViewMB.selectedUser}" columnClasses="label,value">

                    <h:outputText value="Id:" />
                    <h:outputText value="#{userSelectionViewMB.selectedUser.id}" />

                    <h:outputText value="Name" />
                    <h:outputText value="#{userSelectionViewMB.selectedUser.name}" />

                    <h:outputText value="Surname:" />
                    <h:outputText value="#{userSelectionViewMB.selectedUser.surname}" />

                    <h:outputText value="Grade" />
                    <h:outputText value="#{userSelectionViewMB.selectedUser.grade}" />
                </p:panelGrid>
            </p:outputPanel>
        </p:dialog>
    </h:form>
</ui:define>

1 个答案:

答案 0 :(得分:2)

我试过这段代码:

<h:form id="form">
    <p:growl id="msgs" showDetail="true" />

    <p:commandButton update=":form:userDetail" oncomplete="PF('userDialog').show()" icon="ui-icon-search" title="View">
    </p:commandButton>

    <p:dialog header="User Info" widgetVar="userDialog" modal="true" showEffect="fade" closable="true" closeOnEscape="true" hideEffect="fade" resizable="false">
        <p:outputPanel id="userDetail" style="text-align:center;">
            <h:outputText value="Id:" />
            <h:outputText value="1" />

            <h:outputText value="Name" />
            <h:outputText value="Mister" />

            <h:outputText value="Surname:" />
            <h:outputText value="Brown" />

            <h:outputText value="Grade" />
            <h:outputText value="first" />
        </p:outputPanel>
    </p:dialog>
</h:form>

它很棒!也许问题不是你发布的代码。您是否检查过页面中是否有任何javascript错误?