我正在寻找一种方法来为Richfaces DataTable的行实现扩展功能。用户可以单击位于Datatable第一列(每行)的“ + ”链接,该行将“展开”(表示新文本将显示在当前行之间)和下一个)。
我有这个工作,唯一的问题是扩展视图中的所有信息都显示在该行的第一列部分中。我想要做的是在整行显示“扩展”文本(好像“扩展”文本行未被列划分)。
有什么建议吗?我在jsf / richfaces上有点新,所以任何示例代码都会受到赞赏。
答案 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中使用这样的功能有点棘手,需要一些复杂的解决方法。