2012-03-13 5 views
3

いくつかの行のボタンをクリックしてPrimefaces(2.2)DataTableの行番号を取得するにはどうすればよいですか? 私はこの番号をjavascriptコードにprompt()関数で渡す必要があります。行のボタンをクリックすると、primefacesの行番号を取得することができます。

1溶液WidgetVar.selectionを用い

が、この場合には、I行選択し、ボタンをクリックし、手動で使用 - >悪いシナリオ。

<p:column> <p:commandButton id="someButton" value="Button" actionListener="#{managedBean.someEvent}" onclick="return jsMethod(widgetVar.selection)" /> </p:column>

ありがとうございました!

+0

"行番号"では、行IDまたは行インデックスを意味しますか?私は行インデックスを仮定しましたが、 'selection'は行IDを使用します。 – BalusC

+0

私は行のインデックス(例えば、0,1,2など)を意味することがあります。「選択」を使用するのは間違いかもしれませんが、正しい「ID」(0,1,2など)を取得します。私はこのインデックスを使用してidによって 'hiddenInput'を見つけ出します(この記事http://abc.blogspot.com/2009/05/javajspjsf-and-javascript.htmlをありがとう)、 'js prompt()'からコメントを入力して適切なオブジェクトのサーバーサイドコードをデータテーブルに格納します。ありがとうございました。 – MaximG

+0

ああ、それはおそらくPF2.2固有です。 – BalusC

答えて

4

これにはUIData#getRowIndex()を使用できます。

<p:dataTable binding="#{table}" ...> 
    <p:column> 
     <p:commandButton ... onclick="return jsMethod(#{table.rowIndex})" /> 
    </p:column> 
</p:dataTable> 
+0

こんにちは。それは動作しますが、バインディングで列のSortByが動作しません...私のミスはどこですか?ありがとうございました! – MaximG

+0

これは動作しますが、テーブルは要求スコープのBeanになければなりません。 http://myfaces.apache.org/orchestra/myfaces-orchestra-core/component-bindings.html – MaximG

+0

これは、Beanにバインドするのではなく、ビューにバインドしてください。上記のコードを正確に使用してください。 '#{someBean.table} 'ではなく'#{table} 'を使用してください。 – BalusC