2012-03-13 65 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

相关问题