Parte de las barbaridades que hago a diario requieren ciertas consultas HTTP recurrentes. Para poder atenderlas hice un formulario energizado por jQuery. Funciona, pero muchas veces tenía que referirme a datos estáticos y para no tener que llenarlos a cada rato los puse en un combobox.
El problema es que el combobox empezó a crecer y se empezó a volver tedioso encontrar el dato correcto en la cada vez más larga lista de registros.
La solución fue hacer que el combobox fuera editable y que desplegara los registros que respondían a una búsqueda parcial, tal como el ejemplo de jQuery UI para el componente autocomplete. Sin embargo el ejemplo provisto para los comboxes (select boxes) no me gustó. Demasiado complejo para algo "tan simple".
Mi solución (actualizada):
Dejé todo el código para que lo puedan ver y probar en http://jsfiddle.net/jsanta/CBjVz/3/
En mi opinión este código es mucho más fácil, más entendible y más ajustable que el del ejemplo original.
TO DO (pendiente) convertir esto a un plugin.
Vicisitudes entrañables y desentrañables de un
computín con poco tiempo libre,expansible casi infinitamente.
Mi propia Isla, mi espacio de desahogo (casi) libre de censura conocida.
Mostrando las entradas con la etiqueta combobox. Mostrar todas las entradas
Mostrando las entradas con la etiqueta combobox. Mostrar todas las entradas
lunes, diciembre 05, 2011
martes, febrero 02, 2010
Formularios ZK: Comboboxes y temas de constraints
Manoseado a eso de las
6:02:00 p.m.
Hace algún tiempo que vengo desarrollando formularios usando ZK.
ZK es un RIA Framework, muy potente, muy completo, y a veces bastante complejo, sin embargo nada no abordable. Si el objetivo es tener prototipos funcionales cercanos a la versión definitiva, de manera medianamente rápida (a menos que se trate de formularios de más de 20 hojas impresas, llenos de miles de restricciones, y solicitados para plazos imposibles (para ayer)), ZK debiera ser uno de los primeros referentes.
La cosa es que me he enfrentado a 2 problemas recurrentes con una solución no demasiado natural.
Problema: Es necesario rescatar el valor de un campo de selección. El problema radica en que no se puede depender del valor que supuestamente se haya seleccionado en el ComboBox ya que muchas veces no se seleccionan los valores.
Solución: Lo que funciona para mi, y aplica para los casos que he trabajado, es asignar primeramente un valor por defecto al Combobox, un valor que se sepa que existe, Y lo segundo es asignar un evento donde al seleccionar un item del campo de selección, el valor del mismo cambia a la etiqueta.
Problema: Es necesario precargar un formulario con datos, pero al hacerlo se gatillan las restricciones que se han definido.
Solución: Hay 2 opciones, una es cargar los valores con setRawValue(), que permite setear null como valor, quedando el formulario en un estado previo a ser llenado. La otra opción, más directa, es aprovechar el databinding, asignar los valores a variables y cargarlas con value="${valor_variable}" . En este caso hay que tener el cuidado de asignar el valor antes de la definición de las restricciones.
Por algún misterioso motivo había postergado la publicación de este artículo. Seguramente había algo qeu precisar y que había olvidado. En fin.
ZK es un RIA Framework, muy potente, muy completo, y a veces bastante complejo, sin embargo nada no abordable. Si el objetivo es tener prototipos funcionales cercanos a la versión definitiva, de manera medianamente rápida (a menos que se trate de formularios de más de 20 hojas impresas, llenos de miles de restricciones, y solicitados para plazos imposibles (para ayer)), ZK debiera ser uno de los primeros referentes.
La cosa es que me he enfrentado a 2 problemas recurrentes con una solución no demasiado natural.
Problema: Es necesario rescatar el valor de un campo de selección. El problema radica en que no se puede depender del valor que supuestamente se haya seleccionado en el ComboBox ya que muchas veces no se seleccionan los valores.
Solución: Lo que funciona para mi, y aplica para los casos que he trabajado, es asignar primeramente un valor por defecto al Combobox, un valor que se sepa que existe, Y lo segundo es asignar un evento donde al seleccionar un item del campo de selección, el valor del mismo cambia a la etiqueta.
Problema: Es necesario precargar un formulario con datos, pero al hacerlo se gatillan las restricciones que se han definido.
Solución: Hay 2 opciones, una es cargar los valores con setRawValue(), que permite setear null como valor, quedando el formulario en un estado previo a ser llenado. La otra opción, más directa, es aprovechar el databinding, asignar los valores a variables y cargarlas con value="${valor_variable}" . En este caso hay que tener el cuidado de asignar el valor antes de la definición de las restricciones.
Por algún misterioso motivo había postergado la publicación de este artículo. Seguramente había algo qeu precisar y que había olvidado. En fin.
Suscribirse a:
Entradas (Atom)