如何使用相同的数据表制作TabView并对其进行分页

时间:2019-08-19 17:58:02

标签: primefaces tabview

我想使用带有三个选项卡的primefaces组件制作一个选项卡视图,在选项卡内部,我将使用带有输入文本的数据表。是否可以在三个选项卡中使用相同的数据表和不同的字段?是否可以同时对所有选项卡进行分页以一次显示相同的寄存器?对不起,我的英语不好。

想象一下具有以下属性的对象汽车的列表:颜色,形式,车轮,名称,型号和价格。

标签视图
          Tab1 Tab2 Tab2 Tab3
 1行颜色|成型轮|名称型号|价格
 2排
 3行

我想使用相同的数据表并同时对三个选项卡进行分页,以便在三个选项卡上具有相同的行。

1 个答案:

答案 0 :(得分:0)

有可能。您可以将事件添加到tabView中。然后更改数据表的列的可见性。 代码可能是这样的:

<p:tabView activeIndex="#{bean.activeTab}">
    <p:ajax event="tabChange" update="@([id$=dataTable])" />

    <p:tab title="Tab1">
    <p:tab title="Tab2">
    <p:tab title="Tab3">
</p:tabView>

<p:dataTable id="dataTable" value="#{bean.cars}">
    <p:column headerText="Colour" rendered="#{bean.activeTab == 0}">
        ...
    </p:column>

    <p:column headerText="Form" rendered="#{bean.activeTab == 0}">
        ...
    </p:column>

    <p:column headerText="Wheels" rendered="#{bean.activeTab == 1}">
        ...
    </p:column>

    <p:column headerText="Name" rendered="#{bean.activeTab == 1}">
        ...
    </p:column>

    <p:column headerText="Model" rendered="#{bean.activeTab == 2}">
        ...
    </p:column>

    <p:column headerText="Price" rendered="#{bean.activeTab == 2}">
        ...
    </p:column>
</p:dataTable>