在Primefaces 8.0中,带StickyHeader的Datatable在tabview中显示重复的标题。

问题描述 投票:0回答:1

我刚刚从Primefaces 7.0升级到Primefaces 8.0。当使用新版本时,我在TabView中看到一个带有StickyHeader的DataTable出现了重复的页眉。在7.0版本中我没有看到这种行为。我在论坛上搜索了一下,确实看到了很多与这个问题相关的帖子。mertsincan在github上发布了一个解决方案(issue #1218),其中有一个解决方案,但它不工作。我下载了Primefaces展示示例,并尝试了mertincan发布的解决方案,但它不起作用。下图显示了行为,我有一个例子文件。我也检查了所有的链接在github.comprimefacesprimefaces...由Melloware发布的问题 骁勇善战数据表中的重复头信息

这是同一个车的例子,来自展示柜上的sticky。任何方向性的建议来解决这个问题是非常感激的.Thanks。enter image description here以下是视图文件

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>
primefaces jsf-2.2
1个回答
3
投票

这是在PF 8.0中引入的,因为这个问题。https:/github.comprimefacesprimefacesissues5429)。

原来 zoom:1 是一个老的IE8黑客,由于PF不再支持IE8,我们不应该将其转换为 transform: scale(1).

这个问题将在PF Elite 8.0.2中通过这个票据进行修复。https:/github.comprimefacesprimefacesissues5675。

© www.soinside.com 2019 - 2024. All rights reserved.