Popular combobox
13/08/2008 00:00
0
Prezados,

Sou inciante no Grails e programo em PHP+SYMFONY. Neste framework "SYMFONY", toda vez que desejo mostrar campos diferentes de ID em comboboxes de formulários gerados automaticamente, devo criar uma função "toString()" que aponte para o campo desejado. Confesso que pesquisei bastante e fiz alguns testes, entretando, todos sem solução, meus formulários insistem em mostrar "name:id". Veja o exemplo: eu tenho uma domain class chamada profissao e outra chamada pessoa. Essa pessoa deverá ter uma profissao que será escolhida no momento do create através de combobox no formulário, então, cadastro as profissoes e quando abro o form create de pessoa, soh aparece "profissao:id" e não o nome da profissao para o usuário saber o que escolher.

Já tenteio inclusive editar as create.gsp após geração automática mas também não consegui chegar num acordo. Iniciante é fogo neh =(

Abraço pessoal,
Tags: Grails


0
Você pode tanto fazer pelo toString no domain:


String toString(){
"${this.name} : ${this.city}, ${this.state}"
}


Como pela tag optionKey


<g&#58;select name=&quot;user.company.id&quot;
from=&quot;$&#123;Company.list()&#125;&quot;
value=&quot;$&#123;user?.company.id&#125;&quot;
optionKey=&quot;id&quot; />


Veja se resolve seu problema <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
13/08/2008 00:00


0
Prezado Fausto, agradeço muito pela atenção mas,

Não consegui. Confesso que prefiro alterar o controller pois é a partir dele que gero automaticamente as view´s. Mas tentei dos dois métodos sugeridos e nenhum dos dois deram resultados.

Veja o código de uma domain class minha:

class Profissao {
Person usuario
String abreviacao
String descricao
boolean ativo
Date createdAt = new Date()
Date updatedAt = new Date()

static belongsTo = Person
String toString(){
&quot;${this.person} : ${this.username}&quot;
}

static constraints = {
abreviacao(maxLength:20,blank:false)
descricao(maxLength:100,blank:false)
//createdAt(min:new Date())
}

}

E minha classe Person é:

class Person {
static transients = ['pass']
static hasMany = [authorities: Authority]
/*
* Usar assim para o toString() na classe Contribuintes
* static hasMany = [authorities: Authority, contribuintes:Contribuinte]
*/
static belongsTo = Authority

Cep cep
/** Username */
String username
/** User Real Name*/
String userRealName
/** MD5 Password */
String passwd
/** enabled */
boolean enabled

String endereco
String numero
String compl
String bairro
String cidade = 'Cidade2'
String estado = 'SP'
String rg
String cpf
String telefone
String celular
Date nascimento

String email
boolean emailShow

/** description */
String description = ''
Date createdAt = new Date()
Date updatedAt = new Date()

/** plain password to create a MD5 password */
String pass = '[secret]'

static constraints = {
username(blank: false, unique: true)
userRealName(blank: false)
passwd(blank: false)
enabled()
endereco(maxLength:150,blank: false)
numero(maxLength:10,blank:false)
bairro(maxLength:100,blank:false)
rg(blank:false)
cpf(blank:false)
email(maxLength:70,email:true)
cidade(inList:['Cidade1', 'Cidade2'),blank:false)
estado(inList:['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RO', 'RR', 'RS', 'SC', 'SE', 'SP', 'TO'],blank:false)
}
}

Enfim, gostaria de escolher que usuário (person) está cadastrando uma profissão, sacou?

Onde estou errando?

Muito obrigado,
14/08/2008 00:00


0
Cara acho que vc esta errando na hora de mapear a tabela hem. Fiz um teste aqui, tirei varios campos p/ facilitar.

Profissao

class Profissao &#123;

String abreviacao
String descricao

static hasMany = [pessoas&#58;Person]

static constraints = &#123;
abreviacao(maxLength&#58;20,blank&#58;false)
descricao(maxLength&#58;100,blank&#58;false)
&#125;

String toString()&#123;
&quot;$&#123;this.abreviacao&#125; &#58; $&#123;this.descricao&#125;&quot;
&#125;
&#125;


Classe Person


class Person &#123;

Profissao profissao

/** Username */
String username
/** User Real Name*/
String userRealName

String endereco
String numero
String compl
static belongsTo = Profissao
static constraints = &#123;

&#125;
&#125;


Obs.: Tirei um printScreen mas nao tem como anexar no forum. Mas a comboBox esta ok.

Teste ai
14/08/2008 00:00


0
Caro Fausto,

Realmente, estava fazendo uma grande confusão pois peguei uma BD pronta e estava trabalhando no schema da mesma (e fiz confusão).

Muito obrigado,
14/08/2008 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