【问题标题】:Programmatically add Tabs using PrimeFaces [duplicate]使用 PrimeFaces 以编程方式添加选项卡 [重复]
【发布时间】:2014-11-28 09:07:45
【问题描述】:

每当单击菜单项时,我都会以编程方式添加一个新选项卡。我已经搜索了有关动态标签创建的所有问题,并发现了很多未回答的问题。所以我的问题是,是否可以动态创建选项卡?以下是我过去一周正在处理的代码,而不是一个选项卡..

我正在使用 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> 

【问题讨论】:

标签: jsf primefaces


【解决方案1】:
<p:menu>
    <p:submenu label="Ajax">
        <p:menuitem value="Add Tab" actionListener="#{menuView.addTab}" update="WindowContainer"  />
</p:menu>

试试这个 update="WindowContainer" 。内引号给出 tabview id。

【讨论】:

  • 你能解释一下为什么这行得通吗?
  • 我遇到了类似的问题。我想从菜单链接添加一个新选项卡。选项卡内容需要从 xhtml 文件加载。请让我知道它是否适用于您的情况以及您是如何做到的。谢谢你!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 2015-01-07
  • 1970-01-01
  • 2016-04-07
相关资源
最近更新 更多