我有一个PrimeFaces轮播,我想在其中显示一个可编辑的inputTextArea。不幸的是,似乎p:carousel没有获取当前索引的属性,比如p:dataGrid中的rowIndexVar。
有哪些其他解决方案只能渲染当前的inputTextarea?
{{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>