Para selecionar uma linha por exemplo coloque um botao em uma coluna e ligue ele ao metodo de edicao onde vc consegue pegar a linha corrente usando model.getRowData(),mas explique o que realmente precisa fazer pois fica + facil ajudar
M
mendigosujo
Entao, eu qria pegar o conteudo daquela linha pq nela tem um objeto que eu preciso pra poder passar para outra jsp!
L
lgweb
Existem 1000 maneiras de se fazer isso um exemplo:
public Cidade getCidadeFromEditOrDelete() {
IDaoCidade idao = new DaoCidade();
Cidade cidade = (Cidade) idao.findCidade(id);
//ou Cidade cidade =(Cidade) model.getRowdata();
return cidade;
}
/*entaum coloque um botao editar em sua tabela e no action dele chame o metodo editar,
aqui no caso eu tenho uma pagina de edicao que exibe informações da cidade que eu quiser.*/
public String editar() {
Cidade cidade = getCidadeFromEditOrDelete();
setCidade(cidade);
return "editarCidade";
}
flws.
M
mendigosujo
o que é esse model?
eu não posso somente mandar uma lista com os objetos pq eu to usando hibernate e não sei como usar minhas querys do hibernate para retornar um result set!
[]'s
L
lgweb
model seria um DataModel ,veja como eu utlizo ele em minha aplicaçao:
Depois qdo precisar exibir dados em uma tabela ele facilita mto pra vc,pois fornece varios metodos para trabalhar com os dado.
M
mendigosujo
ai para trabalhar com os dados eu crio o HTMLDataTable da tabela e dou um getSelectRow?
Como funciona para trabalhar com os dados? ( essa é minha dúvida hehe )
L
lgweb
Amigo vc ceia um <rich:dataTable e liga ele em um datamodel que retorna uma lista de alguma coisa clientes ,cidades sei lá,daew vc define seus metodos no modelo incluir excluir …blablabla,mas me diga o que vc realmente quer fazer???>
M
mendigosujo
vou ter um radiobutton unico pra cada linha, ai a pessoa seleciona 1 e tem os botoes de editar e excluir, ai eu preencho o objeto e mando pra jsp com os dados preenchidos pra poder tomar a decisão de alterar ou excluir…entendeu?
o metodo me retorna editarCidade que me direciona para uma pagina de edicao,mas vc pode fazer a edicao na propria tabela msm aew so depende de vc,espero que ajude.
T+.
M
mendigosujo
não deu muito certo…ele lançou um IllegalArgumentException e ainda deixa eu selecionar todos os radios…mesmo se eu colocar id nos radios, continua com pau…olha o que eu fiz:
nãosei…mas o tabelaCargasModel não funciona…ele não me tras o objeto preenchido, ele só tras o primeiro objeto da lista… e minha idéia era usar o radio button… eu só qro o objeto selecionado no radio button…mas o radio não funciona pq ele deixa eu selecionar todos…
L
lgweb
para pegar a linha corrente na tabela use seuModelo.getRowData(); e só isso que é necessario,ou passe um identificador da linha com f:param ou f:setpropertieActionListener na sua tabela.
packagecom.Lgweb.Tcc.Controller;importjavax.faces.model.DataModel;importjavax.faces.model.ListDataModel;importcom.Lgweb.Tcc.Dao.DaoEstado;importcom.Lgweb.Tcc.Idao.IDaoEstado;importcom.Lgweb.Tcc.Model.Estado;importjavax.faces.event.ActionEvent;publicclassControlEstado{privateDataModelmodel;privateEstadoestado;privateIntegerid;publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicControlEstado(){}publicEstadofindEstado(Integerid){IDaoEstadoIdao=newDaoEstado();return(Estado)Idao.findEstado(id);}// metodo para criar novo estado no modal!publicvoidNovo(ActionEvente){estado=newEstado();setEstado(estado);}publicStringnovo(){estado=newEstado();return"novoEstado";}publicEstadogetEstado(){returnestado;}publicvoidsetEstado(Estadoestado){this.estado=estado;}publicDataModelgetTodos(){IDaoEstadoldao=newDaoEstado();model=newListDataModel(ldao.ListarTodos());returnmodel;}// Modificado para trabalhar com fPropertieActionListener e filterBypublicEstadogetEstadoFromEditOrDelete(){IDaoEstadoidao=newDaoEstado();Estadoestado=idao.findEstado(id);returnestado;}publicStringeditar(){Estadoestado=getEstadoFromEditOrDelete();setEstado(estado);return"editarEstado";}publicStringupdate(){IDaoEstadoldao=newDaoEstado();ldao.atualizar(estado);return"sucessoEstado";}publicStringexcluir(){IDaoEstadoldao=newDaoEstado();Estadoestado=getEstadoFromEditOrDelete();ldao.excluir(estado);getTodos();return"sucessoDeleteEstado";}publicStringcreate(){IDaoEstadoldao=newDaoEstado();ldao.salvar(estado);getTodos();return"sucesso_incEstado";}publicDataModelgetTodosComNome(){IDaoEstadoidao=newDaoEstado();model=newListDataModel(idao.ListarTodos());returnmodel;}publicjavax.faces.model.DataModelgetModel(){returnmodel;}publicvoidsetModel(javax.faces.model.DataModelmodel){this.model=model;}publicControlEstado(Estadoestado){super();this.estado=estado;}}
Dá uma olhada aew e ve se ajuda.
M
mendigosujo
Com aquele a4j:commandLink deu certo…mas eu qria um radio button hehe =/