2012-04-05 24 views
5

Tengo un montón de componentes DropDownChoice con muchos elementos en un formulario, y al cargar el formulario, me gustaría mostrar solo las opciones guardadas seleccionadas. Cuando el usuario hace clic en DropDownChoice, me gustaría cargar toda la lista de elementos sobre la marcha.Wicket, ¿cómo cargar las opciones de DropDown con un clic?

¿Se puede hacer esto?

+0

¿Qué son los "valores guardados"? – bert

+0

Eso suena un poco ortodoxo, ¿qué pasa si quiero usar teclas rápidas para navegar? – biziclop

+0

@bert: Tal vez no estaba claro - valores guardados, los valores seleccionados la última vez que el usuario vio el formulario. – Per

Respuesta

2

Agregue OnChangeAjaxBehavior a su componente desplegable. Reemplace el método onUpdate y agregue otro componente al objetivo. El valor elegido del componente desplegable está dentro de su modelo.

Actualización: Okey, creo que sé lo que estás tratando de lograr. Agregue un AjaxFormComponentUpdatingBehavior a su componente desplegable con "onclick" como parámetro de constructor. Reemplace el método onUpdate y agregue su componente desplegable al destino. Antes de hacerlo, actualice el modelo desplegable, de modo que ahora contenga todos los valores.

+0

onchange implica exactamente eso: en el cambio, sucede algo cuando cambio el valor de la entrada. Lo que estoy buscando es no tener que transferir todos los elementos de todos los menús desplegables (muchos de los cuales son los mismos) en el momento de visualización de la página. Quiero retrasar eso hasta que el usuario realmente haga clic en un menú desplegable. – Per

+0

ver mi respuesta actualizada – rotsch

0

Tal vez podría ir con el AjaxEditableLabel s ... Usando el AjaxEditableChoiceLabel de Wicket Extensions, obtendrá un componente que muestra el valor actual como una etiqueta hasta que haga clic y los cambios en un DropDownChoice a través de Ajax. Eso debería ser más o menos como la solución que estás buscando.

+0

Ya existe tal: org.apache.wicket.extensions.ajax.markup.html.AjaxEditableChoiceLabel –

+0

@ martin-g Conozco AjaxEditableChoiceLabel pero a juzgar por los ejemplos de wicket esto no es exactamente un DropDownChoice. – Nicktar

+0

Sí, lo es. Es un componente que muestra una etiqueta en el modo de visualización y un DropDownChoice en el modo de edición. –

Cuestiones relacionadas