2011-08-08 23 views

Respuesta

37

Debe utilizar el método DropDownChoice.setNullValid(). Desde el javadoc:

determina si el valor nulo debe ser incluido en la lista de opciones cuando el valor del modelo del campo es no nulo, y si la propiedad de cadena null_valid o no (por ejemplo, "elegir uno") debe ser mostrado hasta que se seleccione un valor no nulo. Si se establece en falso, se mostrará "Choose One" cuando el valor sea nulo. Después de seleccionar un valor, y ese cambio se propaga al modelo subyacente, el usuario ya no verá la opción "Elegir uno", y no habrá forma de volver a seleccionar nulo como el valor. Si se establece en verdadero, la propiedad de cadena nula (la cadena vacía, por defecto) siempre se mostrará como una opción, independientemente de que se haya seleccionado o no un valor no nulo. Tenga en cuenta que esta configuración no tiene ningún efecto en la validación; para garantizar que se especificará un valor en la validación del formulario, FormComponent.setRequired (boolean). Esto se debe a que incluso si se llama a setNullValid() con falso, el usuario puede no proporcionar un valor simplemente al no activar (es decir, hacer clic) en el componente.

Si desea mantener el texto "Elegir uno" con NullValid = true puede utilizar una línea similar a la siguiente en el archivo de Application.properties:

nullValid=[Choose one] 
+0

Bien, parece que este método me ha llamado la atención. Gracias ! – Sephy

+6

+1 No tiene que ser las propiedades de la aplicación, de hecho, generalmente son las propiedades de su página, como "Elija una cosa". Y puede prefijarlo con su identificación de componente, para definir mensajes específicos para diferentes componentes en la misma página. – biziclop

4

En .java:

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

En el archivo .properties asociado con la clase java complemento:

myDropDownWicketId.nullValid=Choose One 
myDropDownWicketId.true=Yes 
myDropDownWicketId.false=No 
Cuestiones relacionadas