0

这是交易:我有一个由托管 bean 中的列表填充的数据表。我想要的是用所选对象的信息打开一个简单的 primefaces 对话框,我试图通过使用 setPropertyActionListener 和 onclick 事件来做到这一点。

                <p:commandButton id="basic" value="Resumo" onclick="dlg1.show();"
                                 type="button" 

                                 >
                    <f:setPropertyActionListener target="#{consultaArtigoBean.artigoSelecionado}"
                                                 value="#{artigo}" />

                </p:commandButton> 

和对话框

        <p:dialog id="basicDialog" header="Resumo - #{consultaArtigoBean.artigoSelecionado.titulo}" 
                  widgetVar="dlg1" 
                  dynamic="true">
            #{consultaArtigoBean.artigoSelecionado.resumo}
        </p:dialog>

问题是动作在 setPropertyActionListener 生效之前执行。所以对话框弹出,没有任何对象。

我应该怎么做才能确保 setProperty 在操作之前执行,从而设置我的对象。

更新

这里的另一个主题有助于回答这个问题。 在 onclick 事件之后将值从 h:outputLink 传递给 JSF

结果是:

<p:commandLink id="basic" value="Resumo"
                               oncomplete="dlg1.show();"
                               update="@form">
                    <f:setPropertyActionListener target="#{consultaArtigoBean.artigoSelecionado}"
                                                 value="#{artigo}" />

                </p:commandLink>

和对话框

<p:dialog id="basicDialog" header="Resumo - #{consultaArtigoBean.artigoSelecionado.titulo}" 
                  widgetVar="dlg1" 
                  dynamic="true">
            #{consultaArtigoBean.artigoSelecionado.resumo}
        </p:dialog>
4

1 回答 1

0

使用oncomplete将在 ajax 回发后触发的属性。update通过属性进一步更新对话框。

在 onclick 事件之前执行 p:commandLink 操作?

于 2013-05-30T21:20:19.407 回答