2011-09-23 58 views
0

我正在寻找一种方法来实现Richfaces DataTable的行的展开功能。用户点击位于Datatable第一列(每行)的“+”链接,该行将“展开”(意味着在当前行与下一个之间显示新文本)。展开Richfaces DataTable中行的功能

我有这样的工作,唯一的问题是,扩大视图中的所有信息显示在该行的第一列部分。我想要做的是在整行中显示“扩展”文本(就好像“扩展”文本行是没有被列分开)。

有什么建议吗?我在jsf/richfaces上有点新,所以示例代码将不胜感激。

回答

0

您可以使用rich:column组件上的breakBefore属性来执行此操作。有一个在RF demo page上使用的例子。

如果您最后一列定义了breakBefore属性,它将适用于您。举个例子:

<rich:dataTable id="mytbl" value="#{mybean.mydata}" var="row"> 
    <rich:column> 
     <a4j:commandLink reRender="mytbl"> 
      <h:graphicImage value="#{row.toggleImage}"></h:graphicImage> 
      <a4j:actionparam name="shown" value="#{not row.expand}" assignTo="#{row.expand}"/> 
     </a4j:commandLink> 
    </rich:column> 
    <rich:column> 
     <f:facet name="header">col 2</f:facet> 
     <h:outputText value="#{row.col2}"/> 
    </rich:column> 
    <rich:column breakBefore="true"> 
     spans all the other columns 
    </rich:column> 
</rich:dataTable> 
0

一个用于这种方式是你可以使用JQuery的功能。

演示链接http://jsfiddle.net/BU28E/1/

这里有一个额外的开销是你需要检查rich:dataTable如何呈现为Html并为jQuery提供DOM模型。在richfaces中具有这种功能有点棘手,它需要一些复杂的解决方法。