3

我正在使用 Primefaces(版本 3.0.1)p:tabView组件,它显示模型中列表支持的动态选项卡数量。TabView 内的选项卡是可关闭的。我想通过关闭事件删除与选项卡关联的列表元素。

这是我的看法:

<p:tabView id="tabView" var="iterator" value="#{bean.list}">
    <p:ajax event="tabClose"
        listener="#{bean.removeElement(iterator)}" process="@this" />

        <p:tab id="tab" closable="true">
            <h:outputText value="#{iterator.text}" />
        </p:tab>
</p:tabView>

我的 bean 处理程序:

public void removeElement(Element e) {
    this.list.remove(e);
}

Element e在这种情况下为空

我也尝试过使用p:collector内部p:ajax元素。primefaces.org 展示中有示例。根据它我的事件处理程序应该看起来像

public void removeElement(TabCloseEvent event) {
    // ...
}

但我不知道如何与选项卡列表元素相关联。

所有答案将不胜感激。提前致谢

4

1 回答 1

2

public void removeElement(TabCloseEvent event)应该使用,imo。

根据TabClos​​eEvent它有一个方法getData()。这应该使您可以访问您的模型类。免责声明:我还没有像您那样使用 TabView,但它适用于 Primeface 的 Tree 组件(即选择节点)。你能把你的发现发回吗?

于 2012-03-05T18:43:43.463 回答