3

私は Primefaces (バージョン 3.0.1)p:tabViewコンポーネントを使用しています。これは、モデル内のリストに基づく動的な数のタブを表示します。TabView 内のタブは閉じることができます。close イベントでタブに関連付けられたリスト要素を削除したいと思います。

これが私の見解です:

<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この場合はnullです

p:collector内部p:ajax要素も使用しようとしました。primefaces.org ショーケースにがあります。それによると、私のイベントハンドラーは次のようになります

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

しかし、タブリスト要素に関連付ける方法がわかりません。

すべての回答をいただければ幸いです。前もって感謝します

4

1 に答える 1

2

public void removeElement(TabCloseEvent event)使用する必要があります。

TabClos​​eEventによると、メソッドがありgetData()ます。これにより、モデル クラスにアクセスできるようになります。免責事項: 私はあなたのように TabView をまだ使用していませんが、Primeface の Tree コンポーネント (つまり、ノードの選択) ではこのように機能します。調査結果を投稿していただけますか?

于 2012-03-05T18:43:43.463 に答える