如何保持primefaces rowexpansion开放?

dan*_*osl 1 jsf primefaces

到目前为止,我有一个嵌套的数据表与行扩展,所以上帝,但我想保持所有行折叠(打开)如何在primefaces上实现这一点?

提前致谢.

对不起,我没有告诉我使用的版本是什么版本的3.5版.

Xtr*_*ica 14

根据Primefaces 4.0文档:

p:rowToggler组件放置展开/折叠图标,单击折叠的行加载带有ajax的展开内容.如果需要在默认情况下将行显示为展开,请使用 在渲染每行之前计算的expandedRow属性,以便支持值表达式.

要保持所有行都打开,请在数据表中使用它,如下所示:

<p:dataTable value="#{bean.list}" expandedRow="#{true}">
Run Code Online (Sandbox Code Playgroud)

要在更新之前打开已打开的行,您需要:

  • 跟踪(服务器端可能是最好的)手动打开和关闭哪些行(通过ajax执行此操作)
  • 在(重新)加载时,p:dataTable您应该在expandedRow属性中放置一个EL来计算它正在处理的当前行(使用var属性或数据表或rowkey上的索引),该值对于之前展开的每一行都返回true.

像这样的东西(没有经过全面测试)

<p:dataTable value="#{bean.list}" var="myRow" expandedRow="#{bean.isExpanded(myRow)}">
Run Code Online (Sandbox Code Playgroud)

以下是Google代码中的功能请求,其目标是3.5.12和4.0.