Primefaces TabView по модели - удалить модель, связанную с вкладкой при закрытии - PullRequest
3 голосов
/ 02 марта 2012

Я использую компонент 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>

Мой обработчик бина:

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

Element e является нулем в этом случае

Я также пытался использовать p:collector внутри элемента p:ajax.На витрине primefaces.org есть пример .В соответствии с этим мой обработчик событий должен выглядеть так:

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

Но я не знаю, как я могу ассоциироваться с элементом списка вкладок.

Все ответы будут оценены.Заранее спасибо

1 Ответ

2 голосов
/ 05 марта 2012

public void removeElement(TabCloseEvent event) следует использовать, IMO.

Согласно TabCloseEvent он имеет метод getData(). Это должно дать вам доступ к вашему классу модели. Отказ от ответственности: я еще не использовал TabView, как вы, но он работает таким образом для компонента дерева Primeface (то есть выбора узла). Не могли бы вы опубликовать свои выводы?

...