Como pegar a posição da linha em um <p:dataTable>

Bom dia

Pessoal eu estou com um pequeno problema em um <p:dataTable> do prime faces

Eu tenho um método que quando eu chamo ele eu quero passar como parâmetro a linha que o usuário está clicando

O meu código é o seguinte:

<p:dataTable var="list" value="#{statusMBean.listWrapperStatus}"
		 emptyMessage="Nenhum Registro" rowIndexVar="rowIndex">

<p:column width="200">
	         <h:commandLink value="" action="#{statusMBean.atualizarCampo(rowIndex)}">
				<h:graphicImage url="#{resource['images:refresh.png']}"/>
		</h:commandLink>
</p:column>

</p:dataTable>

só que o problema é que quando eu chamo o meu atualizarCampo passando o rowIndex como parametro sempre chega no meu manegedBean o valor 0, independente da linha que eu clico…

Alguém saberia me ajudar?

pq nao trabalha com o objeto direto ao invés de usar a linha?
por ex:
<h:commandButton action="#{managedBean.visualizar(item)}">

ou se não está dando certo usar o parâmetro, vai na base do setPropertyActionListener.

<h:commandButton …
<f:setPropertyActionListener target="#{managedBean.itemSelecionado}" value="#{item}" />
</h:commandButton>

[quote=danilowz]pq nao trabalha com o objeto direto ao invés de usar a linha?
por ex:
<h:commandButton action="#{managedBean.visualizar(item)}">

ou se não está dando certo usar o parâmetro, vai na base do setPropertyActionListener.

<h:commandButton …
<f:setPropertyActionListener target="#{managedBean.itemSelecionado}" value="#{item}" />
</h:commandButton>
[/quote]

Fala danilowz

Ja pensei nisso, mas é que meu caso é o seguinte.
Eu tenho uma lista de objetos na minha tela que em cada linha tem um botão atualizar.
Como o meu escopo está como session, eu só queria pegar a posição do dataTable que o usuário clicar, pois com isso eu só ia la no meu manegedBean e dava um set(index) na posição específica da minha lista e atualizava o objeto…

Pois se eu for pegar o objeto eu vo ter que comparar com a lista para achar qual é a linha para se atualizar, e se eu ja tiver a posição exata eu não vo precisar disso…

você tá utilizando JSF 2?
se estiver, realmente é necessário utilizar escopo de sessão?
Dps do surgimento do @ViewScoped e @ConversationScoped, o uso do escopo de sessão ficou bem raro.

tem que tomar cuidado com esse negócio de atualizar lista na mão (via set(), remove()), pq suas alterações não serão refletidas em nenhum usuário que já estiver navegando na mesma tela, já que vc nunca recupera uma lista nova a cada modificação na lista.
supondo que os usuários A e B excluam um registro cada um, o usuário A nunca vai ver que alguém também apagou um outro item na lista e vice-versa.
mas se quando o usuário A apagasse um registro, e ele recuperasse a lista novamente, ele iria ver que nessa nova lista dois registros sumiram, um registro apagado por ele e o outro apagado pelo usuário B.

mas se você realmente quiser usar, tenta usar uma referência ao DataTable pelo atributo “binding”.
nesse objeto você tem uns métodos para recuperar posição ou objeto.

Blz, vou dar uma olhada no binding…

Valew