我在jsf中的模态不会隐藏

时间:2013-11-15 19:53:54

标签: jsf-2 richfaces hide popuppanel

我有一个问题

我使用一个模态来获取信息并输入数据表。

<rich:popupPanel id="panelorcamento" domElementAttachment="form" modal="true" width="600" height="500" zindex="2" show="#{demandasMB.mostraOrcamento}" showWhenRendered="#{demandasMB.mostraOrcamento}">

在我的行动中显示模态我正在使用:

                        <h:commandButton value="Incluir UF">
                        <f:ajax render="panelorcamento" 
                            event="click"
                            listener="#{demandasMB.incluirOrcamento()}"
                            execute="ufs"/>
                    </h:commandButton>

我的MB中的代码是:

    public void incluirOrcamento(){
    orcamentoSelecionado = new Orcamentos();

    if(ufSelecionada.getCnmuf()==null){
        orcamentoSelecionado.setUfs(ufsint.recuperaUnico(ufSelecionada));
    }else{
        orcamentoSelecionado.setUfs(ufSelecionada); 
    }

    orcamentoSelecionado.setAutor(solicitante);
    orcamentoSelecionado.setDatacadastro(Calendar.getInstance());

    acrescentaAnosAoOrcamento();

    showOrcamento();
}

和ShowOrcamento是:

    public void showOrcamento(){
    mostraOrcamento=true;
}

有效。我的模态开放没有问题。

进入我的模态我有一个按钮来隐藏我的模态:

    public void hideOrcamento(){
    orcamentoSelecionado = new Orcamentos();
    mostraOrcamento=false;
}

和要隐藏的按钮是:

                        <h:commandButton value="Fechar">
                            <f:ajax render="panelorcamento"
                            event="click"
                            listener="#{demandasMB.hideOrcamento()}"
                            />
                    </h:commandButton>

我的问题是,当我点击按钮“Fechar”时,我的方法正在调用,但我的模态不会关闭。

有人知道我在做什么吗?

感谢

1 个答案:

答案 0 :(得分:0)

这是一个错误,由于domElementAttachment面板不是渲染所指向的位置。您可以通过渲染整个表单来解决它。

那就是说,你控制面板非常不寻常,你需要做的就是关闭面板:

<h:commandButton value="Fechar" 
    onclick="#{rich:component('panelorcamento')}.hide()">

并且您可以使用show()以相同的方式打开它,无需控制show属性。

最后,{4}中未使用showWhenRendered