首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击commandLink关闭Primefaces lightBox

单击commandLink关闭Primefaces lightBox
EN

Stack Overflow用户
提问于 2012-10-24 19:48:20
回答 1查看 1.9K关注 0票数 0

这只是一个简单的Primefaces lightBox,我想在其中使用commandLinks。不幸的是,当我点击一个commandLink时,它就会关闭。有没有办法让lightBox保持打开状态?

下面是我的代码的示例:

代码语言:javascript
复制
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui" template="template.xhtml">

<ui:define name="content">
    <p:lightBox>
        <h:outputLink value="#">
            <h:outputText value="open lightbox" />
        </h:outputLink>

        <f:facet name="inline">
            <h:form>
                <h:commandLink>
                        commandLink
                </h:commandLink>
            </h:form>
        </f:facet>
    </p:lightBox>

</ui:define>

</ui:composition>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-24 21:08:27

使用ajax (异步)请求而不是同步请求:

代码语言:javascript
复制
<h:commandLink ...>
    <f:ajax ... />
</h:commandLink>

或者,因为您已经在使用PrimeFaces,所以只需使用<p:commandLink> (默认情况下它已经使用了ajax):

代码语言:javascript
复制
<p:commandLink ... />

使用ajax时,默认情况下不会执行响应的新页面替换(这基本上会将所有内容“重置”为默认值)。在使用<f:ajax>的情况下,您可以通过render属性来判断应该在客户端和<p:commandLink>中通过update属性更新组件树的哪些部分。例如,如果您只想呈现/更新父窗体,请使用@form。例如。

代码语言:javascript
复制
<p:commandLink ... update="@form" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13048637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档