2011-08-08 4 views

Répondre

37

Vous devez utiliser la méthode DropDownChoice.setNullValid(). De la javadoc:

Détermine si oui ou non la valeur nulle doit être incluse dans la liste des choix lorsque la valeur du modèle du champ est non nul, et si oui ou non la propriété de chaîne null_valid (par exemple, « Faites votre choix ») devrait être affiché jusqu'à ce qu'une valeur non nulle soit sélectionnée. Si la valeur est false, "Choose One" sera affiché lorsque la valeur est null. Une fois qu'une valeur est sélectionnée et que cette modification est propagée au modèle sous-jacent, l'utilisateur ne voit plus l'option «Choisir un» et il n'y aura aucun moyen de resélectionner null comme valeur. Si elle est définie sur true, la propriété de chaîne nulle (la chaîne vide, par défaut) sera toujours affichée en tant qu'option, qu'une valeur non nulle ait ou non été sélectionnée. Notez que ce paramètre n'a aucun effet sur la validation. afin de garantir qu'une valeur sera spécifiée lors de la validation du formulaire, FormComponent.setRequired (boolean). Cela est dû au fait que même si setNullValid() est appelé avec false, l'utilisateur peut ne pas fournir de valeur simplement en n'activant jamais (c'est-à-dire en cliquant sur) le composant.

Si vous voulez garder le texte avec NullValid = true vous pouvez utiliser une ligne similaire à celle dans votre fichier Application.properties suivant « Choisissez un »:

nullValid=[Choose one] 
+0

Nice, semble cette méthode a glissé mon attention. THX ! – Sephy

+6

+1 Cela ne doit pas nécessairement être les propriétés de l'application, en fait ce sont généralement les propriétés de votre page, comme "Choisissez un thingymajig". Et vous pouvez le préfixer avec votre identifiant de composant, pour définir des messages spécifiques pour différents composants sur la même page. – biziclop

4

En .java:

DropDownChoice<Boolean> myDropDown = new DropDownChoice<>(
    "myDropDownWicketId", model, Arrays.asList(true, false), renderer); 
myDropDown.setNullValid(true); 

Dans le fichier .properties associé à la classe java ajouter:

myDropDownWicketId.nullValid=Choose One 
myDropDownWicketId.true=Yes 
myDropDownWicketId.false=No 
Questions connexes