2013-11-15 27 views
0

我有一个问题我在jsf中的模态不要隐藏

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

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

在我用行动来显示模式I'm:

     <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”点击我方法正在调用,但我的模态不会关闭。

任何人都知道我在做什么worng?

感谢

回答

0

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

这就是说,你是在控制面板相当不寻常的,所有你需要做的关闭面板是:

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

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

最后showWhenRendered未在RF 4中使用。