primefaces数据表显示整列的一个按钮

时间:2014-11-07 15:02:31

标签: jsf jsf-2 primefaces datatable

我正在学习primefaces,我想创建一个自定义数据表。我正在尝试为整个列创建一个只有一个commandButton / commandLink的列。 如下所示:

------------------------------
ID | Name | Year | Attachment |
------------------------------
01 | abcd | 2014 |            |
------------------
02 | decf | 2014 |  -------   |
------------------  |Attach|
03 | desf | 2014 |  -------   |
------------------
04 | ffgt | 2014 |            |
------------------------------

与columnGroup一样,我们在primefaces中有行组。或者是否有更好的方法,善意的建议。

2 个答案:

答案 0 :(得分:0)

将p:columnGroup与rowspan和colspan一起使用。以下链接可以帮助您: http://www.primefaces.org/showcase/ui/data/datatable/subTable.xhtml

答案 1 :(得分:0)

这是PrimeFaces <p:dataTable>的已知限制,请参阅issue 1316rowspancolspan不适用于<p:dataTable>的数据单元格,它们仅适用于<p:dataTable>的页眉和页脚。我最近有同样的问题,我使用PrimeFaces的解决方案是使用<p:panelGrid>然后使用JSTL <c:forEarch>循环我的数据列表来构建<p:panelGrid>的JSF组件。例如:

<p:panelGrid>
    <f:facet name="header">
        <p:row>
            <p:column>ID</p:column>
            <p:column>Name</p:column>
            <p:column>Attach</p:column>                            
         </p:row>
     </f:facet>
     <c:forEach items="#{myBean.data}" var="item" varStatus="index">  
         <p:row>
             <p:column><h:outputText value="#{item.id}" /></p:column>
             <p:column><h:outputText value="#{item.name}" /></p:column> 
             <p:column rowspan="4" rendered="#{index.count == 1}">
                 <h:outputText value="Button" />                                
             </p:column>                            
         </p:row>
     </c:forEach>
</p:panelGrid>

rowspan需要与表格中的项目数相匹配。

另一个解决方案是使用支持此功能的不同JSF组件库,如RichFaces