Ste*_*han 8 java datatable jsf primefaces jsf-2
这是我的模型:
User.java
public class User {
//...
public List<User> getFriends() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我想构建一个用户朋友的表格,如下所示:
users.jsf
+----------+------------+ | USER | FRIENDS | +----------+------------+ | | ALICE | | +------------+ | ADAM | BOB | | +------------+ | | PITT | +----------+------------+ | | | ....
由于有许多用户,因此无法一次性转储用户表.
在这种情况下,数据表组件是理想的,因为它具有内置的分页支持.它也是理想的,因为它可以对列进行排序......
不幸的是,我无法通过Primefaces示例找到更改用户列中的rowspan的方法.
我该如何构建这个数据表?
其他一些OP有类似的问题:
编辑
这是我提出的最终解决方案.
Ker*_*ğan 14
只需在列中使用另一个数据表:)
<h:column>
<h:dataTable var="friend" value="#{user.friends}">
<h:column>
<h:outputText value="#{friend.name}"/>
</h:column>
</h:dataTable>
</h:column>
Run Code Online (Sandbox Code Playgroud)
这是它在我的localhost上的样子
根据@Kerem的回答,这是我想出的解决方案:
为了使嵌套数据表像主数据表自己的行一样,我重写了 CSS 类.ui-dt-c
。检查h:head
标签style
以了解详细信息。
<?xml version="1.0" encoding="UTF-8"?>
<html
xmlns="http://www.w3c.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>USERS and their friends</title>
<style>
.ui-dt-c {
padding: 0px !important;
}
</style>
</h:head>
<h:body>
<h:form id="form">
<p:dataTable
value="#{users.list}"
var="u">
<p:columnGroup type="header">
<p:row>
<p:column headerText="USER" />
<p:column headerText="FRIENDS" />
</p:row>
</p:columnGroup>
<p:column>#{u.name}</p:column>
<p:column>
<p:dataTable
value="#{u.friends}"
var="f">
<p:column>#{f.name}</p:column>
</p:dataTable>
</p:column>
</p:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32414 次 |
最近记录: |