0

これは、commandLinksを使用したい単純なPrimefacesライトボックスです。残念ながら、commandLinkをクリックすると、単に閉じます。lightBoxを開いたままにする方法はありますか?

これが私のコードの例です:

<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>
4

1 に答える 1

1

同期リクエストの代わりに ajax (非同期) リクエストを使用します。

<h:commandLink ...>
    <f:ajax ... />
</h:commandLink>

または、すでに PrimeFaces を使用しているので、<p:commandLink>代わりに使用してください (デフォルトではすでに ajax を使用しています)。

<p:commandLink ... />

ajax を使用すると、デフォルトでは、応答による新しいページの置換は実行されません (基本的に、すべてをデフォルトに「リセット」します)。属性によって、コンポーネント ツリーのどの部分をクライアント側と属性によって更新する必要があるかを<f:ajax>伝えることができます。たとえば、親フォームのみをレンダリング/更新する場合は、を使用します。例えばrender<p:commandLink>update@form

<p:commandLink ... update="@form" />
于 2012-10-24T13:08:27.200 に答える