Problema delete
20/03/2009 00:00
0
Olá Pessoal,

Tenho uma tela (list) onde eu adicionei uma coluna a mais que ficam um checkbox para cada linha. Nessa tela o usuário seleciona quais registros ele deseja deletar e clica no botão "Excluir", o value do checkbox é o "id" do registro para eu recupera-ló no controller e realizar a deleção.

No controller eu faço o seguinte



params.sel.each{

def lancamentoInstance = Lancamento.get(it)
....
}



Por exemplo se eu seleciono o registro com os id = "21" e "22", ele funciona perfeito, deleta os dois sem problemas.

O problema acontece quando eu seleciono apenas um registro que por exemplo com o id = "21", o size de params.sel me retorna 2 e ele tenta excluir o registro "2" e o "1" (21)

Alguém já passou por esse problema ? podem me ajudar ?

Obrigado
Tags: Grails


0
Por que quando você seleciona só um, o params.sel não é uma lista, é uma string. Verifica o tipo do parâmetro antes do each e se preciso transforme em uma lista.

[]'s

Rodrigo Auler
20/03/2009 00:00


0
Rodrigo,

Eu tinha feito esse tipo de verificação, so que verificando se era uma instancia de List, mas nao funcionou.

Fazendo uma verificação de String primeiro funcionou perfeito, acho que o tipo de variável que esta vindo é um Array de String e nao um List, por isso nao estava funcionando.

O código ficou assim



if(params.sel instanceof String){
def lancamentoInstance = Lancamento.get(params.sel).delete()

...

}
else{

params.sel.each{

def lancamentoInstance = Lancamento.get(it).delete()
}
...
}



Valeu pela Ajuda
20/03/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