扩展Richfaces DataTable中行的功能



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

我有工作,唯一的问题是,在展开的视图中的所有信息都显示在该行的第一列部分。我要做的是在整行中显示"展开"的文本(好像"展开"的文本行是不被列分开)。

有什么建议吗?我对jsf/richfaces有点陌生,所以任何示例代码都会很感激。

您可以使用rich:column组件上的breakBefore属性来实现这一点。RF演示页面上有一个使用它的示例。

如果您在最后一列定义了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>   

一种方法是使用JQuery特性。

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

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

相关内容

  • 没有找到相关文章

最新更新