1

是否可以在 PF TabView 中组合固定和动态选项卡?我的用例是为对象列表中的每个对象动态创建一个选项卡。固定选项卡将包含用于创建新对象的表单。提交表单后,必须将带有新对象的新选项卡添加到 TabView。

到目前为止,我设法仅使用两个视图来实现此功能 - 一个用于动态显示对象,另一个用于新对象的表单。

我尝试编写一个新的 TabView 渲染器,它能够渲染动态和固定选项卡。但是,如果我结合两种选项卡类型,PF 命令按钮在固定选项卡上不起作用(我在这里发布了这个问题:http: //forum.primefaces.org/viewtopic.php?t=20840)。

我发现了一篇关于在托管 bean 中创建 PF 标签的论坛帖子(http://stackoverflow.com/questions/4052581/dynamically-generate-tabs-with-primefaces)。如果可能的话,我想避免在 .jsf 视图中以声明方式使用 PF 组件。

4

2 回答 2

1

创建一个TabView,手动添加一个固定选项卡并使用添加动态选项卡<c:forEach>

<p:tabView>
    <p:tab title="Fixed tab">
        <h1>This is the fixed tab</h1>
    </p:tab>

    <c:forEach items="#{myBean.listItems}" var="item">
        <p:tab title="#{item.title}" closable="true">
            <h1>This is a dynamic tab</h1>
        </p:tab>
    </c:forEach>
</p:tabView>
public List<Item> getListItems() {
    Item item1 = new Item("Item 1 title");
    Item item2 = new Item("Item 2 title");
    Item item3 = new Item("Item 3 title");
    List<Item> listItem = new ArrayList<>();
    listItem.add(item1);
    listItem.add(item2);
    listItem.add(item3);
    return listItem;
}

结果:

已选择固定选项卡

已选择动态选项卡

于 2017-06-23T16:04:08.110 回答
0

我们在最新的项目中遇到了同样的问题,并以一种简单但有点粗略的方式解决了它:

我们创建了两个(嵌套的)标签视图。最上面的一个包括 2 个选项卡。一个通过嵌套的第二个(动态)选项卡视图显示所有动态选项卡。第二个显示固定选项卡。(在我们的例子中,固定选项卡不会创建新选项卡,而是显示根据动态选项卡计算的最终结果)。

这只是一种解决方法,但也许会有所帮助。

于 2012-06-20T10:03:06.397 回答