Pegar o id do elemento da lista ao clicar

4 respostas
andreluiz25

Pessoal, estou em um projeto utilizando JSF, mas não conheço muito bem essa tecnologia.
Ao clicar em um dos itens da lista eu preciso redirecionar para outra pagina mostrando os dados referentes a esse elemento da lista. Mas não sei como pegar o Id ou alguma referência do elemento que estou clicando.
Se alguem puder me ajudar agradeço.

<h:dataTable var="hist" value="#{retorno.listHistorico}" rows="10">
					    <h:column>
						    <f:facet name="header">
						      <h:outputText  value="#{msg['lbl_data']}"/>
						    </f:facet>
						     <h:outputText value="#{hist.data}" >
						     	<f:convertDateTime pattern="dd/MM/yyyy"/> 
						     </h:outputText>
						</h:column>
						<h:column>
						    <f:facet name="header">
						      <h:outputText  value="#{msg['lbl_num_prontuario']}"/>
						    </f:facet>
						     <h:outputText value="#{hist.pacientesProntuario} " />
						</h:column>
		         </h:dataTable>

4 Respostas

R

André este codigo pega o registro inteiro da linha que vc clicou:

protected FacesContext context() {

return (FacesContext.getCurrentInstance());

}
public void editarClienteDescontoProduto() throws Exception {

ClienteDescontoProdutoVO obj = (ClienteDescontoProdutoVO) context().getExternalContext().getRequestMap().get(“clienteDescontoProduto”);

setClienteDescontoProdutoVO(obj);
}

onde está “clienteDescontoProduto” é o nome do ver do seu dataTable

basta colocar um commandButton em uma das colunas chamar o metodo acima

espero que ajude.

R

hei André, eu acredito que um metodo utilizando um parametro ActionEvent possa te ajudar, utilizando UIComponent.

marcosharbs

acho que talvez resolvesse fazendo um biding cara, vc terá um atributo no seu backingBean que é componente HtmlDataTable se não me engano, dai no seu jsp vc faz o biding la no seu h:dataTable para esse cara no backingBean ai vc consegue manipular e tal, mas ai vai ter que da uma pesquisada sobre como manipula ele no backing bean
da uma olhada nos metodos que tem e tal, mas acho que assim daria certo.

andreluiz25

Muito obrigado pelas dicas pessoal. Consegui resolver com a sugestao do rodrigojwind, eu pego o ‘objeto’ da linha que eu cliquei.

Criado 7 de agosto de 2009
Ultima resposta 10 de ago. de 2009
Respostas 4
Participantes 4