如何获取PrimeFaces轮播的当前索引?

时间:2015-11-06 09:11:32

标签: jsf jsf-2 primefaces

我有一个PrimeFaces轮播,我想在其中显示一个可编辑的inputTextArea。不幸的是,似乎p:carousel没有获取当前索引的属性,比如p:dataGrid中的rowIndexVar。

有哪些其他解决方案只能渲染当前的inputTextarea?

{{1}}

1 个答案:

答案 0 :(得分:5)

<p:carousel>实施UIData(例如<p:dataTable><p:dataGrid>等)。该组件类具有rowIndex属性。你可以直接抓住它。

首先将<p:carousel>组件绑定到EL中的唯一变量名称(absolutely don't bind it to a bean property!):

<p:carousel binding="#{carousel}" ...>

组件实例将在同一页面的其他位置通过#{carousel}提供。然后,您可以像rowIndex一样访问其#{carousel.rowIndex}属性。

<p:carousel binding="#{carousel}" ...>
    <p:inputTextarea ... rendered="#{carousel.rowIndex eq 0}" />
    <p:inputTextarea ... rendered="#{carousel.rowIndex eq 1}" />
    <p:inputTextarea ... rendered="#{carousel.rowIndex eq 2}" />
    <p:inputTextarea ... rendered="#{carousel.rowIndex eq 3}" />
    ...
</p:carousel>
对具体问题

无关,这是fishy。为什么不将textarea值绑定到当前迭代的行而不是bean?

<p:carousel ... var="item">
    <p:inputTextarea value="#{item.text}" />
    ...
</p:carousel>