Trocar de valor selectOneMenu exibir mensagem

2 respostas
J

Como que faço para quando existir a troca de um valor no meu selectOneMenu, consiga exibir uma msg pedindo se tem certeza se deseja realmente trocar esse valor

por exemplo:

<h:outputLabel value="Lote Fechado:" id="lfechado"/>
                                        <h:selectOneMenu value="#{transacaoLote.campo.status}" id="status"
                                                         onkeydown="if(event.keyCode==13) {event.keyCode=9};">
                                            <f:selectItem itemLabel="Sim" itemValue="1" />
                                            <f:selectItem itemLabel="Não" itemValue="0"/>
                                        </h:selectOneMenu>

Alguem sabe alguma maneira?

2 Respostas

carlos_hen

Use a propriedade “valueChangeListener” para chamar um método, que exibirá uma caixa de diálogo pra vc.

Se vc usar um RichFaces, PrimeFaces, IceFaces ou qualquer outro, esses karas, costumam ter componentes Dialog prontos.

Se não, você pode criar uma div e colocar dois botões dentro, apontando pra métodos que irão trocar o valor da propriedade “transacaoLote.campo.status” para o novo valor, no caso do “SIM” ou retornar o valor anterior, no caso do usuário clicar no “NÃO”.

Abraço.

J

Deu certo sim…consegui fazer com que executasse a verificaçao

public void mudaItemStatus(ValueChangeEvent event) {
        Integer valor = ((Integer) event.getNewValue()).intValue();
        if (valor == 1) {
            FacesContext.getCurrentInstance().addMessage(
                    null,
                    new FacesMessage(FacesMessage.SEVERITY_WARN,
                    "Se alterar o fechamento do lote e gravar não poderá mais ser alterado o mesmo.", "Alteração fechamento lote"));
        }
    }

e na minha view

<h:outputLabel value="Lote Fechado:" id="lfechado" />
                                        <h:selectOneMenu value="#{transacaoLote.campo.status}" id="status"
                                                         onkeydown="if(event.keyCode==13) {event.keyCode=9};"
                                                         valueChangeListener="#{transacaoLote.mudaItemStatus}" onchange="submit()">
                                            <f:selectItem itemLabel="Sim" itemValue="1"/>
                                            <f:selectItem itemLabel="Não" itemValue="0"/>

                                        </h:selectOneMenu>
Criado 11 de março de 2011
Ultima resposta 11 de mar. de 2011
Respostas 2
Participantes 2