2012-03-02 2 views
3

Я использую компонент Primefaces (версия 3.0.1) p:tabView, который отображает динамическое количество вкладок, поддерживаемых списком в модели. Вкладки внутри TabView являются закрываемыми. Я хотел бы удалить элемент списка, связанный с вкладкой, с помощью события close.Primefaces 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 есть example. В соответствии с этим мой обработчик должен выглядеть так:

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

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

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

ответ

2

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

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

+0

Хм, спасибо, я проверяю его. Я не смог найти документацию о методе getData() – nikagra

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