0

我有一个问题

我正在使用一种模式来获取信息并放入数据表中。

<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”按钮时,我的方法正在调用,但我的模式没有关闭。

有人知道我在做什么吗?

谢谢

4

1 回答 1

0

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

也就是说,您正在非常不寻常地控制面板,关闭面板所需要做的就是:

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

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

最后showWhenRendered在 RF 4 中没有使用。

于 2013-11-18T11:13:31.827 回答