7
votes

Case à cocher Grails

J'ai des problèmes avec des biens booléens contraignants dans les classes d'association. La propriété est définie sur true si je cocherez la case à cocher (bon), mais est null si checbox n'est pas cochée.

Je connais le problème avec la case à cocher HTML. Je sais pourquoi est envoyé "_fieldname" dans les paramètres, mais ce "_felieldname" ne pose pas ma propriété booléenne sur false . xxx

si je cocherais la case à cocher :
[ISHDITD: ON, TITRE: A, I _DITÉ:]
PrintLn Person.Groups [0] // True

Si je ne cochez pas la case:
[Titre: A, _tégré:]
println personne.groups [0] // null




Merci beaucoup pour l'aide
À M de
Je suis désolé, j'ai cherché ce Web, mais je n'ai pas eu d'informations réelles pour mes problèmes.


3 commentaires

Certains code GSP pourraient être utiles ici.


Salut Scott, j'appuie le code GSP. Merci Tom


Ce bogue n'a pas été corrigé sur les grails Github Repo: github.com/grails/grails-core/blob/master/grails-plugin-gsp/ src / ... Cela me rendait fou !!


4 Réponses :


5
votes

Après beaucoup de piratage, il apparaît que la réponse est que GRAVES recherche un champ de marqueur avec le nom: xxx

plutôt que xxx

Ce qui est en fait ce que la liste g: la case génère. Voir Grailsdatabindinder.java:911 Voir l'immeubleStartswithfieldMarkerPrefix (PropertyValue PV, chaîne FieldMarkeFrix) Pour confirmation

Si vous êtes intéressé, j'ai téléchargé le projet de test pour cette question à Gitub.com


0 commentaires

5
votes

I CORRECTE Cochez la case à cocher. Grâce à une aide gid, maintenant, il fonctionne aussi avec l'association.

de la source:
http://grails.org/doc/latest/ref/tags/checkbox. html # xxx

à: xxx


3 commentaires

bonnes choses .. Je vais voir si je peux créer un test et un correctif pour le projet Grails


Merci cela aide beaucoup, je ne peux pas croire qu'ils n'ont pas encore réparé cela. Je devais modifier un peu la source. Mais l'idée générale fonctionne. Vous devez mettre à jour le nom du champ caché.


Je suggère d'utiliser un modèle pour rendant la balise d'entrée ici. Cela augmenterait votre lisibilité et votre maintenabilité.



1
votes

Utilisez le code ci-dessous,

<g:checkBox name="checkbox" value="HELLO" />


0 commentaires

0
votes

Définissez la valeur par défaut de la case à cocher sur "False", et cela devrait résoudre le problème. J'espère que ça aide.


0 commentaires