2012-06-04 37 views
2

是否可以在PF TabView中组合固定和动态选项卡?我的用例是动态地为对象列表中的每个对象创建一个选项卡。固定的选项卡将保存用于创建新对象的表单。提交表单后,必须将新对象的新选项卡添加到TabView。PrimeFaces中固定和动态选项卡的组合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组件。

回答

0

我们有同样的问题在我们最新的项目,并解决它在一个简单而有点粗暴的方式:

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

这只是一种解决方法,但可能有所帮助。

0

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

<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; 
} 

结果:

Fixed tab selected

Dynamic tab selected

相关问题