我正在尝试使用Primefaces导航和选择,并且只有当我的行和列值完全匹配时(3个都不能是行= 1列= 3),那么传递所选元素没有问题。当列和行值不相等时,调试器中永远不会调用bookmarkletBean.selectedImage setter。这是为什么?
<p:dataGrid value="#{bookmarkletBean.imageURLs}" var="img" columns="3"
paginator="true" rows="3" effectSpeed="fast" pageLinks="5"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}" paginatorPosition="bottom">
<p:column>
<p:commandLink actionListener="#{bookmarklet.next}">
<p:graphicImage value="#{img.url}" width="125" height="100"/>
<f:setPropertyActionListener value="#{img.url}" target="#{bookmarkletBean.selectedImage}"/>
</p:commandLink>
</p:column>
</p:dataGrid>
答案 0 :(得分:0)
如“用户指南”中所述,行指的是每页显示的数据数,此属性是从UIData继承的,因此行并不表示要显示的行数。(datagrid的特殊情况)。如果要显示12行(元素)和3列,datagrid将在4行中呈现它们,这是计算出来的。