2011-08-22 24 views
5

Chcę utworzyć rozwijany Vaadin z 2 separatorami w nim. Nie mogłem znaleźć sposobu, aby to wdrożyć, czy ktoś może mi pomóc rozwiązać ten problem?Vaadin combobox

ten sposób chcę wyświetlić mój rozwijanej:

  • Wariant 1
  • Opcji 2
  • ------------;
  • wybierz 1
  • wybierz 2
  • -----------;
  • grupa 1

Jak mogę to zrobić?

+0

Tworzenie widgetu Vaadin przy użyciu kodu pola kombi Vaadin. Możesz przesłonić miejsce, w którym treść HTML jest odfiltrowywana po stronie klienta i użyć tagu br, aby dodać linię. – MarterJay

Odpowiedz

4

Nie ma wbudowanego sposobu dodawania separatorów do zaznaczeń. Jedynym sposobem, jaki mogę wymyślić jest dodanie elementu z żądanym separatorem jako jego podpis. Na przykład, jeśli użyjesz domyślnego podpisu (id elementu) select.addItem("-----");, to powinno wystarczyć. Powinno to działać zarówno w przypadku elementów ComboBoxes, jak i NativeSelects.

3

Możesz zaimplementować nowy komponent Vaadin, w tym zachowanie klienta, ale nie jest to łatwe rozwiązanie. Ta strona https://vaadin.com/book/-/page/gwt.html z "Księgi Vaadin" i forum Vaadin może w tym pomóc.

Innym rozwiązaniem jest tworzenie własnego komponentu przy użyciu istniejących komponentów. Możesz zaimplementować specjalny combobox, który pobiera wartości z tablic String lub Component. Sposób ten polega na użyciu paneli Vaadin, układów i okien z rozmiarem i lokalizacjami oraz słuchaczy kliknięć.

0

Zawsze można zrobić

{select.addItem („-----”);}

Kiedyś też chciałem coś takiego zrobić, ale nie było właściwym sposobem, aby to zrobić z Vaadin. Właściwie to stworzyłem widżet Vaadin rozszerzający pole Combo. W widżecie po stronie klienta Vaadin odfiltrowuje treść HTML przed dodaniem elementów do listy. Używanie kodu po stronie klienta przesłonię tę funkcję i używam znacznika HTML "
", aby dodać linię.

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

wygląda najlepszy sposób, nie wiem o jakimś innym

Btw jeśli czytasz pozycji z jakimś liście można połączyć to z jakimś licznika pozycji i (itemsCount%n)==0 operatorowi ustawienie separatora po „n” elementy wstawione :)

0

Możesz dodać element do wybranego (jak wspomniano wcześniej), a następnie wyłączyć separatory z niektórych javascript:

  1. dodaj pozycję do wyboru. cb.addItem ("separator"); cb.setItemCaption ("separator", "-------------");

  2. wykonać javascript

    końcowy Łańcuch JavaScript = ""

    • "var wybiera = document.getElementsByTagName ('select');"
    • "dla (zmienna i = 0 j < selects.length j ++) {"
    • "zmienna op = wybiera [j] .getElementsByTagName ('opcja')";
    • "dla (var i = 0; i < op.length; i ++) {"
    • "if (OP [i] == .text separatorText +" + " ') PO [j] = .disabled prawdziwe;"
    • "}}"; Page.getCurrent(). GetJavaScript(). Execute (javascript);