2013-10-29 82 views
0

如何解決這個問題,我正在使用confimDialog和layoutunit與primefaces。我使用了appendToBody,但無法正常工作。 當我沒有使用layoutunit工作正常。 我想使用appendToBody和我的bean訪問控制器。當我使用這個屬性不訪問我的豆確認對話框不能正常工作layoutUnit

這是我的模板:

<p:layoutUnit position="center" resizable="false" footer="© 2013 Nota Fiscal Eletrônica v. #{UsuarioLogadoControl.versao }" > 
     <h:form id="formCorpo"> 
      <p:messages autoUpdate="true" /> 
      <p:growl autoUpdate="true" /> 
      <div class="main"> 
       <p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();" /> 
       <p:dialog widgetVar="statusDialog" header="Aguarde..." draggable="false" closable="false" resizable="false" appendToBody="true" modal="true"> 
        <p:graphicImage value="/images/ajaxloadingbar.gif" /> 
       </p:dialog> 
       <ui:insert name="corpo" /> 
      </div> 
     </h:form> 
    </p:layoutUnit> 

這是我confirmDialog:

<p:confirmDialog id="dialogConfirmaNotaFiscal" widgetVar="confirmacao" message="A NOTA FISCAL não terá valor fiscal caso não seja confirmada após inclusão" header="Atenção ao Incluir" showEffect="bounce" hideEffect="explode" severity="alert"> 
      <p:commandButton value="OK" update="msg" oncomplete="confirmation.hide()" action="#{NotaFiscalControl.incluir}" ajax="false" rendered="#{!NotaFiscalControl.substituicao}" /> 
      <p:commandButton value="OK" update="msg" oncomplete="confirmation.hide()" action="#{NotaFiscalControl.substituir}" ajax="false" rendered="#{NotaFiscalControl.substituicao}" /> 
      <p:commandButton value="CANCELAR" onclick="confirmacao.hide()" type="button" /> 
     </p:confirmDialog> 

回答

0

你confirmDialog需要在一個單獨的形式。另外,你的EL表達不正確。

"#{NotaFiscalControl.incluir}" 

引用的託管Bean在EL表達式中,默認情況下始終以小寫字符開頭,因爲這樣:

"#{notaFiscalControl.incluir}" 

你明確命名Managed Bean的NotaFiscalControl爲@ManagedBean(name = "NotaFiscalControl")?如果不是,你必須在你的EL表達式中以小寫字母開頭。

+0

感謝您的回覆。是的,太多了,他沒有組件:**佈局單元**基金會 – user2850123

+0

你解決了嗎?你在什麼版本的Primefaces?您可以使用'global =「true」'使confirmDialog全局。 Primefaces 4.0支持它。你的對話在哪裏?內部或外部佈局元素? –

+0

我的對話框位於子頁面中 – user2850123