Editar diversas linhas em uma tela
04/09/2009 00:00
0
Pessoal, estou com uma dúvida enorme....

Preciso editar várias linhas em uma unica tela, essa tela é de notas de alunos, onde eu digito uma nota para cada aluno e clico uma única vez no update para salvar todas as minhas alteraçoes.

preciso trazer todas as informações da tabela como a action show, mas com um campo editavel, até isso tudo bem, o problema é como eu passarei todos os id e os valores que eu alterei, como farei isso, precisarei criar uma função específica???

mais ou menos esta é minha tela!!!!


------------------------------------------------
id | cd_aluno | Nota | Ano |
--- -|-------------|-------------- -|------|
001 | 85 | campo editavel | 2009 |
002 | 88 | campo editavel | 2009 |
------------------------------------------------
update (botao que atualiza todos os registros) |
------------------------------------------------


Não sei como fazer isso, pois acredito que seja mais complexo do que eu pensava....
alguem sabe se existe algum plugin para isso, ou algo já pronto???
Tags: Grails


0
[quote="evandrorg"]Pessoal, estou com uma dúvida enorme....

Preciso editar várias linhas em uma unica tela, essa tela é de notas de alunos, onde eu digito uma nota para cada aluno e clico uma única vez no update para salvar todas as minhas alteraçoes.

preciso trazer todas as informações da tabela como a action show, mas com um campo editavel, até isso tudo bem, o problema é como eu passarei todos os id e os valores que eu alterei, como farei isso, precisarei criar uma função específica???

mais ou menos esta é minha tela!!!!


------------------------------------------------
id | cd_aluno | Nota | Ano |
--- -|-------------|-------------- -|------|
001 | 85 | campo editavel | 2009 |
002 | 88 | campo editavel | 2009 |
------------------------------------------------
update (botao que atualiza todos os registros) |
------------------------------------------------


Não sei como fazer isso, pois acredito que seja mais complexo do que eu pensava....
alguem sabe se existe algum plugin para isso, ou algo já pronto???[/quote]

Vou te dar uma solução tosca para o problema.

AVISO: a solução é TOSCA, porém já serve de ponto de partida para alguma coisa.

Você pode fazer o seguinte: se cada linha for referente ao id de um único aluno, você pode criar o seu formulário com campos cujos nomes reflitam o id do aluno em questão.

Exemplo:
se há um campo chamado nota, defina o seu id no gsp como sendo algo como nota_[id do aluno].

O seu gsp seria algo como o código abaixo:


<g&#58;each in=&quot;${alunos}&quot; var=&quot;notaAluno&quot;>
<tr>
... bla bla bla os demais campos ...
<td><input type=&quot;text&quot; name=&quot;notaAluno${notaAluno.aluno.id}&quot;/></td>
</tr>
</g&#58;each>


E, no seu controlador, você faria algum processamento em cima dos nomes destes campos para identificar qual campo se relaciona com qual aluno a partir desta convenção.


Aliás, eis algo que em JSF é incrívelmente simples de se fazer e em Grails nem tanto.
(opa! primeira vez que vejo uma vantagem do JSF em cima do Grails!)


0
pessoal, uma melhor explicação do que eu preciso.....

é esta tela que eu tenho:



e quando eu clico no botão update eu preciso editar todos os registros.

no meu controller eu recebo algo assim na variável params:
[id&#58;[5, 3], nota&#58;[7, 5], action&#58;index, _action_Update&#58;Update, controller&#58;notaAluno, version&#58;[6, 30]] -----> PARAMS


sendo que tenho todos os paramentros que preciso para fazer o update, que é o id e a nota....

queria saber como quebrar a variável params, ou alguma maneira de salvar estes registros.
08/09/2009 00:00


0
[quote=&quot;evandrorg&quot;]pessoal, uma melhor explicação do que eu preciso.....

é esta tela que eu tenho:



e quando eu clico no botão update eu preciso editar todos os registros.

no meu controller eu recebo algo assim na variável params:
[id&#58;[5, 3], nota&#58;[7, 5], action&#58;index, _action_Update&#58;Update, controller&#58;notaAluno, version&#58;[6, 30]] -----> PARAMS


sendo que tenho todos os paramentros que preciso para fazer o update, que é o id e a nota....

queria saber como quebrar a variável params, ou alguma maneira de salvar estes registros.[/quote]

Que bacana!
Vivendo e aprendendo, não sabia que dava para fazer assim.

Neste caso, é fácil. Basta que você descubra se a sua variável id é uma matriz. Se o for, você irá descobrir quantos itens a mesma possui e, neste caso, basta iterar em cima deste indice e processar os valores presentes no mesmo


0
Olá,

eu faço assim:


for( int i=0;i<params.id.length;i++ ) {
def aluno = Aluno.get( params.id[i] )
aluno.nota = nota[i]
aluno.save()
}


abraço
10/09/2009 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto