Jsf 如何部分拆分Primefaces数据表的每一行?
我的问题如下: 我有一个datatable,其中包含类Jsf 如何部分拆分Primefaces数据表的每一行?,jsf,primefaces,primefaces-datatable,Jsf,Primefaces,Primefaces Datatable,我的问题如下: 我有一个datatable,其中包含类Producto的列表,它内部由几个简单类型的字段和两个proveder类型的对象组成Categoria和tipoproveredor是枚举 public class Producto { private int idProducto; private String nombre; private Categoria categoria; private Proveedor proveedorUno;
Producto
的列表,它内部由几个简单类型的字段和两个proveder
类型的对象组成Categoria
和tipoproveredor
是枚举
public class Producto {
private int idProducto;
private String nombre;
private Categoria categoria;
private Proveedor proveedorUno;
private Proveedor proveedorDos;
}
public class Proveedor {
private int idProveedor;
private TipoProveedor tipoProveedor;
private String nombre;
private BigDecimal precio;
}
我的问题是,在datatable的每一行中,必须显示所有信息,这样,如果一个已填充的提供程序出现,它将正常显示,但如果两个填充都出现,则提供程序信息的一部分将分为两行。例如:
|------------------------------------------------------------------|
| Nombre | Categoria | idProveedor | Nombre Proveedor | Precio |
|------------------------------------------------------------------|
| DIN-A4 | Papel | 10256 | Proveedor Manolito | 10.59 € |
| | | 24747 | Proveedor Fulanito | 10.75 € |
|------------------------------------------------------------------|
| DIN-A5 | Papel | 10256 | Proveedor Menganito | 4.77 € |
|------------------------------------------------------------------|
| DIN-A3 | Papel | 44787 | Proveedor Saturnino | 14.77 € |
|------------------------------------------------------------------|
|------------------------------------------------------------------|
| Nombre | Categoria | idProveedor | Nombre Proveedor | precio |
|------------------------------------------------------------------|
| DIN-A4 | Papel | 10256 | Proveedor Manolito | 10.59 € |
| | | 24747 | Proveedor Fulanito | 10.75 € |
|------------------------------------------------------------------|
| DIN-A5 | Papel | 10256 | Proveedor Menganito | 4.77 € |
| | | | | |
|------------------------------------------------------------------|
| DIN-A3 | Papel | 44787 | Proveedor Saturnino | 14.77 € |
| | | | | |
|------------------------------------------------------------------|
我曾尝试使用这样的数据表,但它看起来并不完全符合我的需要:
<p:dataTable id="listadoProductos" widgetVar="listadoProductos"
value="#{listadoProductosBean.listadoProductos}" var="producto"
emptyMessage="#{messages['tabla.VACIA']}">
<p:column headerText="#{messages['listado.NOMBRE']}">
<h:outputText value="#{producto.nombre}" />
</p:column>
<p:column headerText="#{messages['listado.CATEGORIA']}">
<h:outputText value="#{producto.categoria.desc}" />
</p:column>
<p:column headerText="#{messages['listado.ID_PROVEEDOR']}"
rendered="#{producto.proveedorUno != null && producto.proveedorDos != null}">
<p:panelGrid columns="1">
<p:row>
<h:outputText value="#{producto.proveedorUno.idProveedor}" />
</p:row>
<p:row>
<h:outputText value="#{producto.proveedorDos.idProveedor}" />
</p:row>
</p:panelGrid>
</p:column>
<p:column headerText="#{messages['listado.ID_PROVEEDOR']}"
rendered="#{producto.proveedorUno != null && producto.proveedorDos == null}">
<p:panelGrid columns="1">
<p:row>
<h:outputText value="#{producto.proveedorUno.idProveedor}" />
</p:row>
</p:panelGrid>
</p:column>
<p:column headerText="#{messages['listado.ID_PROVEEDOR']}"
rendered="#{producto.proveedorUno == null && producto.proveedorDos != null}">
<p:panelGrid columns="1">
<p:row>
<h:outputText value="#{producto.proveedorDos.idProveedor}" />
</p:row>
</p:panelGrid>
</p:column>
</p:dataTable>
您可以对要分组的列使用
groupRow
属性,因此:
<p:column headerText="#{messages['listado.NOMBRE']}" groupRow="true">
<h:outputText value="#{producto.nombre}" />
</p:column>
<p:column headerText="#{messages['listado.ID_PROVEEDOR']}">
<h:outputText value="#{producto.proveedorUno.idProveedor}" />
</p:column>
见:
- (第行)
styleClass
,并使用CSS将表格单元格设置为min height
见:
空白:nowrap
和一些
标记,对吗?同意。停止将其视为“拆分行”您需要为表示数据的1行返回一个对象,然后在单元格中按@JasperdeVries所述操作,并使用空白:nowrap
和
标记使具有1个以上值的列以这种方式显示