2013-11-15 53 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中使用。