我有一个时间表,总是当我点击创建的事件时,它会打开一个对话框来编辑事件。在这个对话框中,我还有一个删除事件的按钮。此按钮调用另一个要求确认的对话框。但是这个按钮只工作一次。此外,没有错误。
这就是我创建对话框的方式:
<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="  "/>
<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()");
}
抱歉我的英文。