我有一个p:对话框。我的目的是使用p:datagrid创建一个列表,当用户单击一个项目时,该对话框将打开并显示其详细信息。请在展示中考虑p:datagrid的示例。但是,目前它在IE中运行良好,但在Chrome中运行不正常。如果我定义“modal = true”,那么浏览器会变黑,但对话框不会显示。
<p:commandButton update=":form:sharePanel" value="Share" style="font-size: 10px" oncomplete="PF('dlg').show()" rendered="false">
<f:setPropertyActionListener target="#{shareController.current}" value="#{status}" />
</p:commandButton>
<p:dialog widgetVar="dlg" resizable="false" id="sharePanel" styleClass="no-border" modal="true">
<h:outputText value="#{shareController.current.url.url}" />
<h:panelGrid columns="3">
<p:dataGrid value="#{shareController.current.url.NLinkList}" var="nshare" columns="1" rendered="#{shareController.current.url.NLinkList.size() > 0}">
<h:panelGroup styleClass="tag noun">
<h:outputText value="#{nshare.noun}" />
</h:panelGroup>
</p:dataGrid>
<p:dataGrid value="#{shareController.current.url.VLinkList}" var="vshare" columns="1" rendered="#{shareController.current.url.VLinkList.size() > 0}">
<h:panelGroup styleClass="tag verb">
<h:outputText value="#{vshare.verb}" />
</h:panelGroup>
</p:dataGrid>
<p:dataGrid value="#{shareController.current.url.PLinkList}" var="pshare" columns="1" rendered="#{shareController.current.url.PLinkList.size() > 0}">
<h:panelGroup styleClass="tag prep">
<h:outputText value="#{pshare.prep}" />
</h:panelGroup>
</p:dataGrid>
</h:panelGrid>
</p:dialog>
这里有什么问题?
答案 0 :(得分:0)
如果您在4.0之前使用的是Primefaces版本,请使用dlg.show()
代替PF('dlg').show()
。
尝试使用属性appendToBody="true"
在主体中附加对话框,因为如果Facelet更复杂,并且如果您使用的是Layouts,则对话框不会触发某些浏览器,只会显示模型。
<p:dialog appendToBody="true" >