在primefaces中的多个对话框

时间:2013-08-15 23:32:53

标签: jsf primefaces

我有一个包含两个对话框的表,一个用于删除,另一个用于添加新帐户。 当我单击两个按钮时,会显示一个对话框。 我做错了什么? 这是我的前端代码

<ui:composition template="/WEB-INF/templates/default.xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">

<ui:param name="hideHeaderAndFooter" value="false" />
<ui:param name="navigationAndMain" value="false" />
<ui:param name="login" value="false" />

<ui:define name="mainContent">
    <div xmlns="http://www.w3.org/1999/xhtml"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:p="http://primefaces.org/ui">
        <h:form id="form">
            <p:growl id="messages" showDetail="true" />
            <p:growl id="growl" showDetail="true" />
            <p:growl id="messageyesno" />
            <p:growl id="messageadd" />

            <p:dataTable var="account"
                value="#{accountManagedBeanTran.accountDataModel}"
                sortMode="multiple" paginator="true" rows="10"
                paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                rowsPerPageTemplate="5,10,15" editable="true"
                resizableColumns="true" draggableColumns="true"
                selection="#{accountManagedBeanTran.selectedAccounts}">

                <f:facet name="header">List of Users</f:facet>

                <p:ajax event="rowEdit" listener="#{accountManagedBeanTran.onEdit}"
                    update=":form:messages"></p:ajax>
                <p:ajax event="rowEditCancel"
                    listener="#{accountManagedBeanTran.onCancel}"
                    update=":form:messages"></p:ajax>
                <p:ajax event="colResize" update=":form:growl"
                    listener="#{accountManagedBeanTran.onResize}"></p:ajax>

                <p:column selectionMode="multiple" style="width:2%" />

                <p:column sortBy="#{account.username}" headerText="User Name"
                    filterBy="#{account.username}" filterMatchMode="contains"
                    style="width:30%">

                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{account.username}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{account.username}" style="width:100%" />
                        </f:facet>
                    </p:cellEditor>

                </p:column>

                <p:column sortBy="#{account.firstName}" headerText="First Name"
                    filterBy="#{account.firstName}" filterMatchMode="contains"
                    style="width:20%">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{account.firstName}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{account.firstName}" style="width:100%"
                                label="First Name" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>

                <p:column sortBy="#{account.lastName}" headerText="Surname"
                    filterBy="#{account.lastName}" filterMatchMode="contains">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{account.lastName}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{account.lastName}" style="width:100%"
                                label="Last Name" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>

                <p:column sortBy="#{account.email}" headerText="Email"
                    filterBy="#{account.email}" filterMatchMode="contains">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{account.email}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{account.email}" style="width:100%"
                                label="Email" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>

                <p:column style="width:6%">
                    <p:rowEditor />
                </p:column>

                <f:facet name="footer">

                    <div>

                        <p:commandButton id="delete" value="Delete"
                            onclick="confirmation.show()" type="button" />

                        <p:confirmDialog id="deleteConfirmDialog" message="Queres borrar el usuario?"
                            showEffect="drop" hideEffect="drop"
                            header="Delete" severity="alert"
                            widgetVar="confirmation" modal="true">

                            <p:commandButton value="Yes" update=":form:messageyesno"
                                oncomplete="confirmation.hide()"
                                actionListener="#{accountManagedBeanTran.onDelete}" />
                            <p:commandButton value="Not" onclick="confirmation.hide()"
                                type="button" />

                        </p:confirmDialog>

                        <p:commandButton id="add" value="Add"
                            onclick="confirmation.show()" type="button" />

                        <p:confirmDialog id="addConfirmDialog" message="Queres agregar un usuario?"
                            showEffect="drop" hideEffect="drop"
                            header="Add" severity="alert"
                            widgetVar="confirmation" modal="true">

                            <h:form id="messageAddForm">
                                <h:panelGrid columns="2" style="margin-bottom:10px">
                                    <h:outputLabel for="username" value="User Name:" />
                                    <p:inputText id="unsername" value="#{accountManagedBeanTran.newAccount.username}" />
                                    <h:outputLabel for="password" value="Password:" />
                                    <p:inputText id="password" value="#{accountManagedBeanTran.newAccount.password}" />
                                    <h:outputLabel for="firstName" value="First Name" />
                                    <p:inputText id="firstName" value="#{accountManagedBeanTran.newAccount.firstName}" />
                                    <h:outputLabel for="lastName" value="Surname" />
                                    <p:inputText id="lastName" value="#{accountManagedBeanTran.newAccount.lastName}" />
                                    <h:outputLabel for="email" value="Email" />
                                    <p:inputText id="email" value="#{accountManagedBeanTran.newAccount.email}" />
                                    <h:outputText value="Enabled:" />  
                                    <p:selectBooleanCheckbox value="#{accountManagedBeanTran.newAccount.enabled}" />            
                                </h:panelGrid>  
                            </h:form>

                            <p:commandButton value="Save" update=":form:messageadd"
                                oncomplete="confirmation.hide()"
                                actionListener="#{accountManagedBeanTran.onCreate}" />
                            <p:commandButton value="Cancel" onclick="confirmation.hide()"
                                type="button" />

                        </p:confirmDialog>
                                        </div>

                </f:facet>

            </p:dataTable>
        </h:form>
    </div>
</ui:define>

提前致谢。

1 个答案:

答案 0 :(得分:7)

您的问题是,您的两个对话框都是widgetVar"confirmation")。每个对话框都需要是不同的widgetVar,您需要调用所需的对话框。