2014-10-03 31 views
0

每次單擊菜單項時,都會以編程方式添加新選項卡。我已經搜索了動態標籤創建的所有問題,並發現了很多未答覆的查詢。所以我的問題是,是否可以動態創建選項卡?下面是我的工作在過去的一週,而不是在視線選項卡中的代碼..使用PrimeFaces以編程方式添加選項卡

我使用Primefaces 5.0,JSF 2.2鑽嘴魚科

動態菜單 -

DefaultMenuItem windowItem = new DefaultMenuItem(node); 
windowItem.setCommand("#{windowContainer.add}"); 
windowItem.setImmediate(true); 

WindowContainer輔助Bean

@ManagedBean 
@ViewScoped 
public class WindowContainer implements Serializable { 

private List<Window> windows; 

@PostConstruct 
public void init() { 
    windows = new ArrayList<Window>(); 
    windows.add(new Window("window"+windows.size(),"first tab")); 
} 

public void add() { 
    windows.add(new Window("window" + windows.size(), "some content")); 
    RequestContext req = RequestContext.getCurrentInstance(); 
    req.update("WindowContainer"); 
} 

public void remove(Window window) { 
    windows.remove(window); 
} 

public List<Window> getWindows() { 
    return windows; 
} 

public void setWindows(ArrayList<Window> windows) { 
    this.windows = windows; 
} 

Windows是隻有outputtext的簡單選項卡。

<p:tabView id= "WindowContainer" value="#{windowContainer.windows}" var="window"> 
    <p:tab title="#{window.title}"> 
     <p>#{tab.content}</p>       
      <p:commandButton value="Close" action="#{windowContainer.remove(window)}" /> 
     </p:tab> 
    </p:tabView> 

將不勝感激,如果有人能在正確的方向指向我。 在此先感謝!

+0

看看[this](http://stackoverflow.com/questions/22293708/how-to-add-tabs-in-tabview-in-primefaces-dynamically-on-click-of-a-command -但)? – ForguesR 2014-10-03 15:13:03

回答

0
<p:menu> 
    <p:submenu label="Ajax"> 
     <p:menuitem value="Add Tab" actionListener="#{menuView.addTab}" update="WindowContainer" /> 
</p:menu> 

嘗試像這樣update =「WindowContainer」。在裏面引號給tabview id。

+0

你能解釋**爲什麼**這個工程? – rayryeng 2015-05-14 07:03:31

+0

我正面臨類似的問題。我想從菜單鏈接添加一個新選項卡。標籤內容需要從xhtml文件中加載。請讓我知道它是否適用於您的情況以及您是如何做到的。謝謝! – 2017-11-09 09:09:58

相關問題