Busca em tela de cadastro
28/05/2013 11:40
0
Prezados, bom dia.

Estou com a seguinte necessidade.

Tenho dois domínios, sendo Categoria e Itens.
O domínio item armazena o código da categoria.

Quando criei o crud padrão, na tela create do item, tem um combo com todas categorias (devido ao relacionamento criado entre os dois domínios).

Eu não queria um combo com as categorias, eu gostaria de colocar um textField que, ao digitar o código da categoria (que não é a chave primária de categoria, porque tenho id, código e descrição, sendo id a chave primária) e sair do textField ele possa exibir o nome da categoria em um rótulo (ou a informação de que a categoria não foi encontrada).

Outra coisa é que ao criar o textfield com o nome da categoria, ele reclama que este campo não existe no domínio itens. Aí não posso criar este campo no domínio senão ele vai criar um campo na tabela itens para o nome da categoria.

Evaldo Wolkers.

Alguém tem algum exemplo?

Com certeza terei que usar Ajax
Tags: Ajax, consulta, cadastro


1
Bom dia Evaldo.

É AJAX mesmo.



<r:script>
$("#txt").keyup(function(){
$("#lbl").load(${createLink(controller: 'ctrl', action: 'actAJAX'), function(response, status){
(...)
});
});
</r:script>


def ajax(String k){
def busca = k?.trim()
if(busca)
return Domain.findAllByCodigo("*${busca}*"}
}




Bom, seria algo nessa linha de raciocínio, o código não está depurado, mas acho que consegui lhe passar a ideia.


0
Olá Eduardo.

Verifiquei que tem um plug-in que ajuda neste problema.

O RichUi

Alguém aqui já usou?

Fiz um teste mas o conteúdo da lista do "autocompletar" vem com o número de categorias correto, porém, não exibe o conteúdo, está apenas a cor do foco do mouse.

E ao clicar aparece "undefined" no campo de texto.

No GSP:
<g:javascript library="jquery" plugin="jquery"/>
<resource:autoComplete skin="default" />


<richui:autoComplete name="nome" minQueryLength="10" action="${createLinkTo('dir': 'categoria/localizarCategoria')}" />



No controller:
def localizarCategoria = {
def categorias = Categoria.findAllByNome("${params.query}%")

//Create XML response
render(contentType: "text/xml") {
results() {
categorias.each { categoria ->
result(){
nome(categoria.nome)
id(categoria.id)
}
}
}
}
}


Alguém já usou o RichUI e funcionou corretamente?

Evaldo Wolkers
28/05/2013 15:03


0
Já resolvi o problema.

Obrigado.

Evaldo Wolkers.
29/05/2013 20:16


0
Evaldo, seria legal postar a solução para que outras pessoas pudessem ter acesso.
30/05/2013 19:10



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