Selecionar uma linha no rich:dataGrid

6 respostas
dahenz

Bom dia!

Estou utilizando rich:dataGrid em um resultado de tela de uma consulta, porém gostaria de selecionar uma linha para ver mais detalhes sobre o registro!

Alguém sabe como eu faço isto????

Obrigado

6 Respostas

dahenz

Estou tentando da seguinte forma:

<rich:dataGrid id="avisos"	     				
		     				var="avisos"
		     				value="#{LoginMB.pareceresAtraso}"
		     				binding="#{LoginMB.grdPareceresAtraso}" >
		     				
		     				<a4j:support event="onRowClick"
		     							 action="#{LoginMB.grdPareceresAtrasoOnRowClick}"
		     							 onsubmit="Richfaces.showModalPanel('pnlAguarde');"
		     							 oncomplete="Richfaces.hideModalPanel('pnlAguarde');" />

                    </rich:dataGrid>

ManagedBean

public void grdPareceresAtrasoOnRowClick(){
		
		selecionarGrid();
		
	}
Facade
protected void selecionarGrid(){
		
		Integer linha = getGrdPareceresAtraso().getRowIndex();
		setParecer(getPareceresAtraso().get(linha));
		
		System.out.println("=====>"+linha.toString()+getParecer().getParecer());
		
	}

NEM SINAL DE VIDA.......

dahenz

Tentei esse codigo:

protected void selecionarGrid(){
		
		SimpleRowKey key = (SimpleRowKey) getGrdPareceresAtraso().getRowKey();
		setParecer(getPareceresAtraso().get(key.intValue()));
		
		System.out.println("=====>"+getParecer().getParecer());
		
	}

Agora tá dando erro:

GRAVE: java.lang.NullPointerException
javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
at javax.faces.component.UICommand.broadcast(UICommand.java:311)
at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
at org.ajax4jsf.component.UIDataAdaptor.broadcast(UIDataAdaptor.java:1379)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)

Alguém tem alguma idéia?????

dahenz
Tentei o rowIndex:
protected void selecionarGrid(){

		Integer row = getGrdPareceresAtraso().getRowIndex();
			
		System.out.println(row.toString());
		
	}

Aparece sempre -1...

será que o binding está errado?????

Alguém passou por isto?????

Preciso de ajuda... obrigado

A

Cara, olha esse componente do rich acho que pode ajudar você:

http://livedemo.exadel.com/richfaces-demo/richfaces/componentControl.jsf?c=componentControl&tab=usage

dahenz

Legal esse componente adrsant… mas acho que o dataGrid é mais simples… estou quase lá

já consigo mostrar o rowCount ao clicar na linha… mas o rowIndex que é o mais importante… hehehe nao

ele mostra -1, voce tem idéia do porquê???

dahenz

Como que eu consigo pegar o RowCount e nao o RowIndex???/

Se eu consigo pegar o RowCount é sinal que meu biding está funcionando!!!

MEU DEUSSSS!! preciso resolver… :slight_smile:

Criado 12 de agosto de 2011
Ultima resposta 12 de ago. de 2011
Respostas 6
Participantes 2