2011-05-12 7 views
5

J'utilise un g: balise select comme ceci:Grails g: balise select

<td><g:select name="newCity" 
     id="${'newCity_' +cityData.uid}" 
     from="${cityData.name}" 
     value="${cityData.someValue}" 
     noSelection="${['null':'Select City...']}" class="newCity" /> 
</td> 

qui rend le code HTML suivant:

<td> 
<select name="newCity" id="newCity_abc" class="newCity" > 
<option value="null">Select City...</option> 
<option value="A" >A</option> 
<option value="B" >B</option> 
<option value="C" >C-</option> 
<option value="D" >D</option> 
</select> 
</td> 

Cependant, je veux que mon code HTML pour ressembler à ceci; avec la classe insérée puisque je fais une validation javascript:

<td> 
<select name="newCity" id="newCity_abc" class="newCity" > 
<option value="null">Select City...</option> 
<option value="A" class="populated" >A</option> 
<option value="B" class="notpopulated" >B</option> 
<option value="C" class="populated" >C</option> 
<option value="D" class="notpopulated" >D</option> 
</select> 
</td> 

Est-ce possible?

Ai-je besoin de créer une bibliothèque de balises personnalisée pour y parvenir?

Toute aide sera appréciée, merci!

Répondre

4

Je ne crois pas que ce soit possible. Le select tag implementation (writes out the <option> tags) appelle le private method writeValueAndCheckIfSelected pour renseigner le option, et ceci ne connaît aucun nom de classe.

Il y a un New Feature Request on the Grails JIRA âgé de 2 ans, mais je pense que vous pourriez être coincé en lançant votre propre tag pour faire ceci pour votre situation spécifique.

+0

tim, des conseils sur la façon d'écrire mon propre tag? Merci! –

+0

Vous devriez être capable de faire 'grails create-tag-lib' puis de copier l'implémentation select tag existante dans votre tag, mais ajoutez les classes pour les options. c'est à dire; ce gars voulait ajouter optgroup pour sélectionner: http://vivin.net/2009/02/11/creating-a-custom-select-tag-with-optgroup-in-grails/ –

+0

est-il un moyen de le faire par déléguer à la balise Grails, plutôt que de copier-coller la source? –