2011-08-22 8 views
5

Quiero crear Vaadin desplegable con 2 separadores en él. No pude encontrar una manera de implementar eso, ¿alguien puede ayudarme a resolver este problema?Vaadin combobox

Esta es la forma que yo quiero mostrar mi desplegables:

  • Opción 1
  • Opción 2
  • ------------;
  • seleccione 1
  • seleccione 2
  • -----------;
  • grupo 1

¿Cómo puedo hacer eso?

+0

Cree un widget Vaadin utilizando el código del cuadro combinado de Vaadin. Puede anular el lugar donde se filtra el contenido HTML del lado del cliente y usar la etiqueta br para agregar la línea. – MarterJay

Respuesta

4

No hay forma incorporada de agregar separadores a las selecciones. La única forma en que puedo pensar es agregar un artículo con el separador deseado como su título. Por ejemplo, si utiliza el título predeterminado (ID del elemento) select.addItem("-----"); debería ser suficiente. Esto debería funcionar tanto para ComboBoxes como para NativeSelects.

3

Puede implementar un nuevo componente Vaadin que incluya el comportamiento del cliente, pero esta no es una solución fácil. Esta página https://vaadin.com/book/-/page/gwt.html del foro "Book of Vaadin" y Vaadin puede ayudar para eso.

Además, crear su propio componente utilizando componentes existentes es otra solución. Puede implementar un combobox especial que toma valores de matrices de cadenas o componentes. La forma de hacerlo es usar paneles Vaadin, diseños y ventanas con tamaño y ubicaciones, y hacer clic en oyentes.

0

Siempre se puede hacer

{select.addItem ("-----");}

Una vez yo también quería hacer como un algo que, pero no había manera apropiada de hacer eso con Vaadin. De hecho, creé un widget Vaadin que ampliaba el cuadro combinado. En el widget del lado del cliente de Vaadin filtran el contenido HTML antes de agregar elementos a la lista. Entonces, al usar el código del lado del cliente, anulo esa funcionalidad y uso la etiqueta HTML "
" para agregar la línea.

0
select.addItem("-----"); 

parece la mejor manera, no sé acerca de alguna otra

Por cierto si usted está leyendo los artículos en alguna lista se puede combinar eso con un poco de contador de operaciones y (itemsCount%n)==0 operador fijar el separador después de 'n' artículos insertados :)

0

Puedes añadir el artículo a la seleccionada (como se mencionó antes) y luego desactivar los separadores con algunos javascript:

  1. agrega el elemento a la selección. cb.addItem ("separador"); cb.setItemCaption ("separador", "-------------");

  2. ejecutar el javascript

    final String javascript = ""

    • "var selecciona = document.getElementsByTagName ('seleccionar');"
    • "for (var j = 0; j < selects.length; j ++) {"
    • "var OP = selecciona [j] .getElementsByTagName ('opción');"
    • "for (var i = 0; i < op.length; i ++) {"
    • "si (op [i] .text == '" + separatorText + "') op [i] = .disabled cierto;"
    • "}}"; Page.getCurrent(). GetJavaScript(). Execute (javascript);