到目前为止,我有一个嵌套的数据表,行扩展,所以上帝,但我想保持所有行扩展(打开)如何在primefaces上实现这一点?
提前致谢。
对不起,我没有告诉我使用的版本是什么版本的3.5版。
根据Primefaces 4.0文档:
p:rowToggler组件放置展开/折叠图标,单击折叠的行加载带有ajax的展开内容。如果需要在默认情况下将行显示为展开,请使用在渲染每行之前计算的expandedRow属性,以便支持值表达式。
要保持所有行都打开,请在数据表中使用它,如下所示:
<p:dataTable value="#{bean.list}" expandedRow="#{true}">
要在更新之前打开已打开的行,您需要:
p:dataTable
时,您应该在expandedRow
属性中放置一个EL来评估它正在处理的当前行(使用var属性或数据表或rowkey上的索引),该值对于之前展开的每一行都返回true。像这样的东西(没有经过全面测试)
<p:dataTable value="#{bean.list}" var="myRow" expandedRow="#{bean.isExpanded(myRow)}">
以下是谷歌代码中的the feature request,目标是3.5.12和4.0。
另一个解决方案是:
<p:commandButton type="button" onclick="jQuery('.ui-row-toggler').click()" value="Expand/Collapse All" />
如果要在开始时折叠行:
<p:headerRow>
<p:column styleClass="my-class">
<h:outputText value="#{bean.value}"/>
</p:column>
</p:headerRow>
...
<script>
$(document).ready(function () {
$('td.my-class > .ui-rowgroup-toggler').click();
});
</script>