在ui:composition中使用p:dialog

时间:2014-07-03 07:19:51

标签: jsf-2 primefaces

我使用ui:include在outer.xhtml中包含了一个inner.xhtml页面。 inner.xhtml有一个p:commandLink,其oncomplete属性打开一个p:dialog。

inner.xhtml

<html>
 <ui:composition>
  <h:form>
   <p:commandLink oncomplete="mydialog.show();" actionListener="listener method" process="@this">
   </p:commandLink>
  </h:form>
 </ui:composition>
 <p:dialog id="mydialogid" widgetVar="mydialog">
   My Code For Dialog
 </p:dialog>
</html>

outer.xhtml

<h:form>
<p:commandButton oncomplete="dlg.show();" actionListener="listener method" global="false"></p:commandButton>
</h:form>
<p:dialog id="dlgid" widgetVar="dlg" dynamic="true" appendTo="@(body)">
    <ui:include src="inner.xhtml">
        <ui:param name="idPrefix" value="par"/>
    </ui:include>
</p:dialog>

问题是,点击inner.xhtml中的commandlink后,我收到此错误

Uncaught ReferenceError: mydialog is not defined

对话框没有打开。如何解决这个问题?

我正在使用primefaces 4.0

1 个答案:

答案 0 :(得分:0)

查看PrimeFaces文档。

你需要这样做: -

<p:commandButton oncomplete="PF('mydialog').show();">

我目前在oncomplete遇到问题,所以如果这不起作用,请尝试以下方法排除此问题: -

<p:commandButton onclick="PF('mydialog').show();">