2012-03-13 22 views
3

如何通過單擊某行中的按鈕來獲取Primefaces(2.2)DataTable中的行號? 我需要將這個數字通過prompt()函數傳遞給javascript代碼。通過單擊行中的按鈕獲取primefaces數據表中的行號

1解決方案

使用WidgetVar.selection但在這種情況下,我使用手動行選擇,然後點擊按鈕 - >壞的情景。

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

謝謝!

+0

對於「行號」,是指行ID還是行索引?我假設行索引,但'選擇'使用行ID。 – BalusC 2012-03-13 18:39:34

+0

我的意思是行索引(例如:0,1,2等)也許這是錯誤的使用'選擇',但我得到正確的'ID'(0,1,2等)。我使用這個索引來通過Id找到'hiddenInput'(感謝你閱讀這篇文章http://balusc.blogspot.com/2009/05/javajspjsf-and-javascript.html)並且從'js prompt()'輸入評論到服務器端代碼爲數據表中適當的對象。謝謝。 – MaximG 2012-03-13 19:56:51

+0

哦,這可能是PF 2.2的具體。 – BalusC 2012-03-13 20:07:12

回答

4

您可以使用UIData#getRowIndex()

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

嗨。它的工作原理,但綁定不起作用SortBy在列...我的錯誤在哪裏?謝謝! – MaximG 2012-03-15 15:33:56

+0

它的工作原理是,表必須位於請求範圍的bean中。 http://myfaces.apache.org/orchestra/myfaces-orchestra-core/component-bindings.html – MaximG 2012-03-23 11:08:48

+0

呃,不,你不應該把它綁定到bean,而是綁定到視圖。使用上面的代碼。使用'#{table}'而不是'#{someBean.table}'。 – BalusC 2012-03-23 11:09:51

相關問題