Primefaces f:setPropertyActionListener里面的p:dataGrid只在第一个寄存器上工作

时间:2014-03-18 14:50:41

标签: jsf-2 primefaces el

我正在使用primefaces-4.0并且得到一个非常奇怪的行为。

有一组布局layoutMateriaMB.listaLayouts,我在其上迭代创建一个p:dataGrid,其中每列代表一个布局,该列的f:setPropertyActionListener在Bean中设置所选布局。第一列工作正常,单击时调用layoutMateriaMB中的setLayout方法,但是,所有其他列都不起作用。刚刚没有调用set方法,我无法理解为什么会发生这种情况。

以下是我的代码:

<p:dataGrid var="layout" value="#{layoutMateriaMB.listaLayouts}" columns="5" rows="1" paginator="false">
    <p:column>
        <p:panel header="#{layout.valor}" style="text-align:center">
            <h:panelGrid columns="1" style="width:100%">
                <h:graphicImage library="imagens/layouts" name="#{layout.imagem}" width="100" />
                <p:commandLink update=":form:grid-layout" oncomplete="" title="Selecionar" rendered="#{layoutMateriaMB.layout ne layout}">
                    <h:outputText value="Selecionar" title="Selecionar" />
                    <f:setPropertyActionListener value="#{layout}" target="#{layoutMateriaMB.layout}" immediate="true"/>
                </p:commandLink>
                <h:outputText value="Selecionado" title="Selecionado" rendered="#{layoutMateriaMB.layout eq layout}" style="color:#313964; font-weight:bold;"/>
            </h:panelGrid>
        </p:panel>
    </p:column>
</p:dataGrid>

好的,我解决了这个问题。将rows="1"更改为rows="5"就是这么简单。 这解决了问题,所有项目都正常工作。但我仍然不明白为什么它不起作用。如果有人知道,请告诉我.. :)

0 个答案:

没有答案