2011-08-12 6 views
2

Salut J'essaie de créer une liste déroulante créée de manière dynamique dans Grails qui ne met en valeur que certaines balises d'option. Voici ce que j'ai:Sélections Grails: ajout de styles à des options spécifiques

<g:select class="DropDownList" 
    from="${listOfMaps}" 
    optionValue="${{(it.match=='Something'?'<em>':'') + it.thingToPrint 
    + (it.match=='Something'?'</em>':'') }}" 
    /> 

et cela fonctionne dans le sens où il imprime la chose à imprimer, mais quand il est supposé ajouter la balise <em> qu'il imprime comme ceci:

<option>&lt;em&gt;ITEM&lt;/em&gt;</option> 

Et ce n'est pas ce dont j'ai besoin. qui imprime <em>ITEM</em> dans la liste déroulante.

Est-ce que quelqu'un sait comment obtenir pour être ceci:

<option><em>ITEM</em></option> 

pour qu'il imprime « ARTICLE »?

Les ressources que j'ai utilisé jusqu'ici:

+0

En relation: http://stackoverflow.com/questions/5976941/grails-gselect-tag –

Répondre

2

La balise HTML <g:select/> code valeurs renvoyées de l'attribut optionValue, c'est la raison pour laquelle votre code html est s'échappé . La meilleure façon d'y parvenir est d'écrire un taglib personnalisé. Cependant, même dans ce cas, vous aurez probablement besoin de faire cela avec des CS au lieu du balisage puisque le style CSS d'un tag <option> est probablement plus largement supporté.

+0

Est-il possible de créer un tag d'identification pour chaque balise '

+1

Non via la balise '' fournie. Les taglibs intégrés sont conçus pour des cas d'utilisation simples et la plupart du temps, vous devez écrire votre propre implémentation pour obtenir le comportement que vous recherchez. Je dirais qu'environ la moitié du temps je finis par écrire mon propre balisage. – Rhysyngsun

Questions connexes