2016-06-30 2 views
0

у меня есть (7.6.6) сетки Vaadin показать некоторые Java Beans, который находится в макетеВаал высота сетки слишком большой

VerticalLayout layout = new VerticalLayout(); 
layout.setSpacing(true); 
layout.setMargin(true); 
List<Booster> boosters = new ArrayList<>(); 
boosters.add(creaBoost("e")); 
boosters.add(creaBoost("f")); 
boosters.add(creaBoost("g")); 
Grid grid = new Grid(); 
grid.setContainerDataSource(new BeanItemContainer<>(Booster.class, boosters)); 
grid.setWidth("80%"); 
grid.setSelectionMode(SelectionMode.MULTI); 
grid.removeColumn("ident"); 
layout.addComponent(grid); 

Button button = new Button("Delete", FontAwesome.WARNING); 
button.setStyleName(ValoTheme.BUTTON_DANGER); 
layout.addComponent(button); 

, что приводит к следующему enter image description here мне было интересно, где от этой высоты? Есть ли способ уменьшить его и показать только фактическую высоту, которую он требует?

В идеале учитывается, что он не должен превышать X, так что если больше элементов является частью сетки, оно не растет постоянно?

Как это можно достичь?

ответ

1

Чтобы определить высоту, вы можете использовать следующие функции (setHeightMode, setHeightByRows), интерпретируя количество элементов сетки или задавая их определенному количеству видимых строк.

Grid myGrid = new Grid(); 
    VerticalLayout test = new VerticalLayout(); 

    Bill testBill = new Bill(23, "Test", "Products", 3, new Date(), new Date()); 
    BeanItemContainer<Bill> testItemContainer = new BeanItemContainer<Bill>(Bill.class); 

    testItemContainer.addItem(testBill); 

    myGrid.setContainerDataSource(testItemContainer); 
    test.addComponent(myGrid); 

    myGrid.setHeightMode(HeightMode.ROW); 
    myGrid.setHeightByRows(testItemContainer.size()); 
+0

это отлично работает, когда количество элементов меньше, чем может отображаться (для меня около 10 элементов). когда 'testItemContainer.size()' больше этого, я вижу только первые 10 элементов и никаких полос прокрутки. При сортировке столбца сетка переходит в полный размер и отображает все элементы. –

+0

Мм ... это странно. Когда у меня есть 30 элементов в моем BeanItemContainer и ограничьте сетку до 10, есть ** всего 10 видимых **, ** прокрутка ** работает и сортировка столбца также не вызывает проблем. Я использую свежий архетип Ваадина ... Может быть, у вас есть стиль, который влияет на сетку? –

+0

Вот мой пример ... [Скриншот] (http://lb-photography.de/uploads/gridSize.jpg) –

Смежные вопросы