2

私はprimefacesツリーテーブルを使用しており、ユーザーがツリーテーブルの要素を並べ替えることができるように、各行にボタンを作成しようとしています。

たとえば、3つのノードがすべて同じレベルにあるツリーテーブルがあり、ツリーテーブル内のこれらの3つのノードのそれぞれに「上へ」ボタンがある場合、ノードの1つで上ボタンをクリックすると、そのノードが必要になります。上に移動します(基本的にノードを並べ替えます)。

選択したノードのインデックスを取得するにはどうすればよいですか?

for(int i = 0; i < selectedNode.getParent().getChildren().size(); i++) {

    // how can i compare the index of the current child in the loop to the selected child?
}
4

2 に答える 2

1

きれいではありませんが、できます

  1. テーブルの属性を使用してselection、バッキング Bean で選択したノードのハンドルを取得し、次に

  2. あなたの裏付けにあるメソッドを使用してindexOf(私は推測しています)List、アイテムのインデックスを取得します。通常、動的に生成されたプライムフェイスのデータバインドされたアイテムの順序は、バッキング コレクションのインデックス/順序付けに従うため、インデックス付けを信頼できます。

<p:ajax/>または、コンポーネントを試して、選択したオプションを設定し、上記のようにすることもできます。

于 2012-09-03T07:27:07.457 に答える
0

「getRowKey()」メソッドを使用して、選択したノード インデックスを取得できます。

多分:

selectedNode.getRowKey()

そして、カウント ノード サイズが必要な場合は、メソッド「getChildCount()」を使用できます。

selectedNode.getParent().getChildCount()
于 2016-11-03T07:45:20.200 に答える