提问者:小点点

素数命令按钮“更新”不起作用


我有一个对话框:

    <p:dialog 
        id="dlgComment"
        widgetVar="dialogComentario"
        modal="true"
        header="#{messages.comentarios}"
        width="600px"
        resizable="false" showEffect="clip" hideEffect="clip">
        <h:form id="formComentario">
            <p:panelGrid columns="2" style="width: 100%">
                <f:facet name="header">
                    <h:outputText value="#{monitorarEventoControlador.eventoSelecionado.titulo}"/>
                </f:facet>
                <h:outputText value="#{messages.inicio}" />  
                <h:outputText value="#{monitorarEventoControlador.eventoSelecionado.inicio}" />  

                <h:outputText value="#{messages.gravidade}" />  
                <h:outputText value="#{monitorarEventoControlador.eventoSelecionado.gravidade}" />  
            </p:panelGrid>
            <p:dataTable id="tableComentario" var="comentario" value="#{monitorarEventoControlador.eventoSelecionado.getComentariosAsList()}" emptyMessage="#{messages.noRecordsFound}">
                <f:facet name="header">
                    #{messages.comentarios}
                </f:facet>
                <p:column headerText="#{messages.dataHora}"> 
                    <h:outputText value="#{comentario.dataHora}">
                        <f:convertDateTime pattern="dd/MM/yyyy HH:mm" timeZone="#{monitorarEventoControlador.buscaTimeZone()}"/>
                    </h:outputText>
                </p:column>  
                <p:column headerText="#{messages.usuario}"> 
                    <h:outputText value="#{comentario.usuario.orgao.sigla} - #{comentario.usuario.apelido}"/>
                </p:column>  
                <p:column headerText="#{messages.texto}"> 
                    <h:outputText value="#{comentario.texto}" />  
                </p:column>  
            </p:dataTable>
            <p:panelGrid columns="2" style="width: 100%">
                <h:inputText value="#{monitorarEventoControlador.comentarioSelecionado.texto}" maxlength="80"/>
                <p:commandButton value="#{messages.comentar}" actionListener="#{monitorarEventoControlador.adicionarComentario()}" icon="ui-icon-check" update="tableComentario" />
            </p:panelGrid>
        </h:form>
    </p:dialog>

还有豆子:

    public void adicionarComentario() {
        comentarioSelecionado.setDataHora(new Date());
        comentarioSelecionado.setEvento(eventoSelecionado);
        comentarioSelecionado.setUsuario(autenticador.getUsuarioCorrente());
        todosOsComentarios.colocar(comentarioSelecionado);
        notificarComentario(comentarioSelecionado);
        eventoSelecionado.getComentarios().add(comentarioSelecionado);
        todosOsEventos.colocar(eventoSelecionado);
        iniciarComentario(eventoSelecionado);
    }

 private void notificarComentario(Comentario comentario) {
    Notificacao n = new Notificacao();
    n.setDataHora(comentario.getDataHora());
    n.setDescricao(DateUtil.dataHoraFormatada(n.getDataHora()) + " - " + comentario.getUsuario().getOrgao().getSigla() + "(" + comentario.getUsuario().getApelido() + "): " + comentario.getTexto());
    n.setComentario(true);
    n.setInforme(comentario.getEvento().getInforme());
    comentario.getEvento().getInforme().getNotificacoes().add(n);
}

public void iniciarComentario(Evento evento) {
    comentarioSelecionado = new Comentario();
    setEventoSelecionado(evento);
}

commandButton应该更新数据表。我刚刚从Prime 3.5升级到5.1,在我设法解决的其他问题中,有一个问题真的很烦人。它正在开发Prime 3.5。更具体地说,这里出了什么问题:动作被正常触发,数据被正确插入,但是dataTable不再更新。这是我昨天在Prime 3.5中使用的相同代码,但是现在,使用Prime 5.1,数据表不再刷新。< br >有什么想法吗?谢谢


共1个答案

匿名用户

使用:在id之前

记住

如果您创建对话框

  1. 对话框之前应关闭旧表单标记
  2. 然后,对话框内容应放入另一种形式中。
  3. 使用 :d ialogid, :d ialogFormId