[英]JSF rich:dataList rendered per row?
看起来像这样应该可行,但是...?
使用richfaces和JSF,我正在使用rich:dataList遍历一个List ...一切都很好,只是我希望能够选择性地“渲染”每个迭代,这可能吗?
例如:
<rich:dataList value="#{list}" var="item">
<h:outputText value="#{item.something}" />
</rich:dataList>
我希望能够选择性地呈现输出,例如,如果'item'的某些属性为true或诸如此类。
我试过将outputText
包装在outputPanel
和类似的东西中,但是如果未呈现输出面板,则仍呈现迭代的“ <li>
”,因此您得到的是一个重点,而不仅仅是跳过整个项目:(
有什么办法解决这个问题还是我SOL? 我知道通常我想事先准备好要显示的项目列表,但是由于许多原因,我不会在这里重复,所以是不可能的。
奇怪的行为。 我试图用战斧的 t:dataList
重现它,但是我看到的是完全一样的行为! 最好的办法是将其替换为a4j:repeat
并手动呈现纯HTML <li>
元素。 就像是:
<ul class="rich-datalist">
<a4j:repeat value="#{list}" var="item">
<h:panelGroup rendered="#{item.somecondition}">
<li class="rich-list-item">
<h:outputText value="#{item.something}" />
</li>
</h:panelGroup>
</a4j:repeat>
</ul>
(我从这里描述的rich:dataList
借用了相同的类名,以便保留外观)
但是,我个人将其标记为错误或至少是不良行为,并将其报告给有问题的组件库后面的男孩。 我已经为战斧做到了 。
简单。 将呈现的属性添加到h:outputText标记。
<rich:dataList value="#{list}" var="item">
<h:outputText value="#{item.something}" rendered="#{item.isDisplayed}"/>
</rich:dataList>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.