<p:diolog>只能工作一次

时间:2017-03-28 18:57:40

标签: jsf primefaces dialog

我有一个时间表,总是当我点击创建的事件时,它会打开一个对话框来编辑事件。在这个对话框中,我还有一个删除事件的按钮。此按钮调用另一个要求确认的对话框。但是这个按钮只工作一次。此外,没有错误。

这就是我创建对话框的方式:

       <p:dialog widgetVar="eventDialog"  header="Reserva" showEffect="clip" hideEffect="clip" modal="true">
            <h:panelGrid id="eventDetails" columns="2" >

                <h:outputLabel id="pessoalabel" for="pessoa" value="Pessoa:"/>
                <h:panelGroup id="pessoaCond">          
                    <p:autoComplete  value="#{calendarioReservaAdmBean.pessoa}" id="pessoa" size="60"
                        converter="#{utilBean.dao.pessoaDao.converter}" completeMethod="#{utilBean.dao.pessoaDao.findComBuscaAtivosRangeDefault}"
                        var="item" itemLabel="#{item.nome}" itemValue="#{item}"  forceSelection="true" dropdown="true" label="Pessoa"
                        required="true">
                        <p:column>
                            <h:outputText value="#{item.nome}" />
                        </p:column> 
                        <p:ajax event="itemSelect" listener="#{calendarioReservaAdmBean.pessoaSelecionadaApto}" 
                            process="@this" update="apartamentoPanel" />                        
                    </p:autoComplete>
                </h:panelGroup> 

                <h:outputLabel id="apartlabel" for="apartamentoPanel" value="Apartamento:"/>
                <h:panelGroup id="apartamentoPanel">            
                    <h:selectOneMenu id="selectApto" value="#{calendarioReservaAdmBean.apartamento}" required="true" label="Apartamento">
                        <f:selectItems value="#{calendarioReservaAdmBean.aptoList}" var="apto" itemValue="#{apto.id}" 
                            itemLabel="#{apto.numero}"/>
                    </h:selectOneMenu>
                    <h:message for="selectApto" styleClass="validation-message" />
                </h:panelGroup>

                <p:outputLabel for="from" value="De:" />
                <p:calendar id="from" value="#{calendarioReservaAdmBean.event.startDate}" pattern="dd/MM/yyyy HH:mm" locale="pt" required="true"/>                  

                <p:outputLabel for="to" value="Até:" />
                <p:calendar id="to" value="#{calendarioReservaAdmBean.event.endDate}" pattern="HH:mm" timeOnly="true" locale="pt" required="true"/>                 

                <p:outputLabel for="desc" value="Descrição:" />
                <h:inputTextarea value="#{calendarioReservaAdmBean.event.data.descricao}" cols="60" rows="5" label="Descrição" id="desc" required="true"/>                  

                <p:commandButton id="addButton" value="Salvar" actionListener="#{calendarioReservaAdmBean.addEvent}" 
                         icon="ui-icon-disk"/>
                <p:commandButton id="deleteButton" value="Excluir" icon="ui-icon-trash" actionListener="#{calendarioReservaAdmBean.confirmaDialog}"
                        rendered="#{not empty calendarioReservaAdmBean.event.id}"/>
            </h:panelGrid>
        </p:dialog>


        <p:dialog widgetVar="deleteConf"  header="Deletar" showEffect="clipe" hideEffect="clipe" draggable="false"
                 resizable="false" modal="true">

            <h:outputText value="Deseja excluir?"/>
            <br></br>
            <br></br>              
            <p:commandButton id="yes" value="SIM"  actionListener="#{calendarioReservaAdmBean.deleteEvent}"
                    oncomplete="myschedule.update(); eventDialog.hide(); deleteConf.hide();" icon="ui-icon-check"/>
            <h:outputText value="&#160;&#160;"/>
            <p:commandButton id="no" value="NÃO" onclick="deleteConf.hide();" icon="ui-icon-closethick"/>           
        </p:dialog>

这是我在bean中使用的方法:

public void onEventSelect(SelectEvent selectEvent) {
    DefaultScheduleEvent eventoSelecionado = (DefaultScheduleEvent) selectEvent.getObject(); 
    event = eventoSelecionado;
    ReservaAC rac = (ReservaAC)event.getData();
    setApartamento(rac.getApartamento().getId());
    setPessoa(rac.getPessoa());
    setAptoList(Dao.apartamentoDao.findAllByPessoa(getPessoa()));
    RequestContext context = RequestContext.getCurrentInstance();
    context.execute("eventDialog.show()"); 
}

public void deleteEvent(){
    ReservaAC rAC = (ReservaAC)event.getData();       
    try {
        Dao.reservaACDao.delete(rAC);
    } catch (JDBCException  e) {
        e.getSQLException().getNextException();
    }
}

public void confirmaDialog(){
    RequestContext context = RequestContext.getCurrentInstance();
    context.execute("deleteConf.show()");       
}

抱歉我的英文。

0 个答案:

没有答案
相关问题