展开Richfaces DataTable中行的功能

时间:2011-09-23 03:38:40

标签: jsf datatable richfaces

我正在寻找一种方法来为Richfaces DataTable的行实现扩展功能。用户可以单击位于Datatable第一列(每行)的“ + ”链接,该行将“展开”(表示新文本将显示在当前行之间)和下一个)。

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

有什么建议吗?我在jsf / richfaces上有点新,所以任何示例代码都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

您可以使用rich:列组件上的 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>   

答案 1 :(得分:0)

一种方法是使用JQuery功能。

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

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