我刚刚从Primefaces 7.0升级到Primefaces 8.0。当使用新版本时,我在TabView中看到一个带有StickyHeader的DataTable出现了重复的页眉。在7.0版本中我没有看到这种行为。我在论坛上搜索了一下,确实看到了很多与这个问题相关的帖子。mertsincan在github上发布了一个解决方案(issue #1218),其中有一个解决方案,但它不工作。我下载了Primefaces展示示例,并尝试了mertincan发布的解决方案,但它不起作用。下图显示了行为,我有一个例子文件。我也检查了所有的链接在github.comprimefacesprimefaces...由Melloware发布的问题 骁勇善战数据表中的重复头信息
这是同一个车的例子,来自展示柜上的sticky。任何方向性的建议来解决这个问题是非常感激的.Thanks。以下是视图文件
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import com.example.model.Car;
import com.example.service.CarService;
@Named
@ViewScoped
public class ScrollView implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1472033438497912037L;
private List<Car> cars;
@Inject
private CarService service;
@PostConstruct
public void init() {
cars = service.createCars(50);
}
public List<Car> getCars() {
return cars;
}
public void setService(CarService service) {
this.service = service;
}
}
下面是xhtml文件。你可以在第10行和第11行的代码中看到mertsincan建议的解决方案。"mytabView.ui-tabs {position:static}。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<style type="text/css">
.myTabview.ui-tabs {
position: static;
}
.noborders tr, .noborders td {
background: none !important;
border: none !important;
}
.negativeColor {
color: red;
}
.ui-datagrid-no-border>.ui-datagrid-content {
border: none !important;
}
</style>
</h:head>
<body>
<p:tabView id="CarsTabView" dynamic="false" cache="true" styleClass="myTabview">
<p:tab id="CarsTab" title="Cars">
<p:dataTable var="car" value="#{scrollView.cars}" stickyHeader="true">
<p:column headerText="Id">
<h:outputText value="#{car.id}" />
</p:column>
<p:column headerText="Year">
<h:outputText value="#{car.year}" />
</p:column>
<p:column headerText="Brand">
<h:outputText value="#{car.brand}" />
</p:column>
<p:column headerText="Color">
<h:outputText value="#{car.color}" />
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
</body>
</html>
这是在PF 8.0中引入的,因为这个问题。https:/github.comprimefacesprimefacesissues5429)。
原来 zoom:1
是一个老的IE8黑客,由于PF不再支持IE8,我们不应该将其转换为 transform: scale(1)
.
这个问题将在PF Elite 8.0.2中通过这个票据进行修复。https:/github.comprimefacesprimefacesissues5675。