0

我有 ap: 对话框。我的意图是使用 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>

这里有什么问题?

4

1 回答 1

0

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

并尝试使用属性将对话框附加到正文中appendToBody="true",因为如果 Facelet 更复杂并且您使用的是布局,则对话框不会触发,某些浏览器只会出现模型。

<p:dialog appendToBody="true" >
于 2013-09-17T04:30:24.393 回答