2012-06-04 31 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

相關問題