Primefaces Dialog无法使用Chrome

时间:2013-09-17 02:53:08

标签: jsf primefaces dialog

我有一个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>

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

如果您在4.0之前使用的是Primefaces版本,请使用dlg.show()代替PF('dlg').show()

尝试使用属性appendToBody="true"在主体中附加对话框,因为如果Facelet更复杂,并且如果您使用的是Layouts,则对话框不会触发某些浏览器,只会显示模型。

<p:dialog appendToBody="true" >