【问题标题】:Combination of fixed and dynamic tabs in PrimeFaces TabViewPrimeFaces TabView中固定和动态选项卡的组合
【发布时间】:2012-06-04 14:11:18
【问题描述】:

是否可以在 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 组件。

【问题讨论】:

    标签: jsf primefaces tabview


    【解决方案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;
    }
    

    结果:

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-12-30
        • 2014-12-30
        • 1970-01-01
        • 2019-11-17
        • 2014-11-02
        • 1970-01-01
        • 2015-12-20
        • 2011-09-24
        • 2017-03-14
        相关资源
        最近更新 更多