2014-10-03 3 views
0

Я программно добавляю новую вкладку всякий раз, когда нажимается элемент меню. У меня есть googled для всех вопросов по динамическому созданию Tab и найдено много неотвеченных запросов. Поэтому мой вопрос: возможно ли динамически создавать вкладки? Ниже приведен код, я работаю на прошлой неделе и не вкладки в поле зрения ..Программно добавить вкладки с помощью PrimeFaces

Я использую Primefaces 5.0, JSF 2.2 Mojarra

Динамическое меню -

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 - простая вкладка только с выходным текстом.

Взгляд

<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

Посмотрите на [это] (http://stackoverflow.com/questions/22293708/how-to-add-tabs-in-tabview-in-primefaces-dynamically-on-click-of-a-command -но)? – ForguesR

ответ

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

Постарайтесь это обновление = «WindowContainer». Внутри цитаты дается идентификатор табуляции.

+0

Можете ли вы объяснить, почему ** это работает? – rayryeng

+0

У меня такая же проблема. Я хочу добавить новую вкладку из ссылки меню. Содержимое вкладки необходимо загрузить из файла xhtml. Пожалуйста, дайте мне знать, если это сработает в вашем случае и как вы это сделаете. Спасибо вам! –

Смежные вопросы