Как добавить сетку в диалог - PullRequest
0 голосов
/ 20 сентября 2019

Мне нужно поместить сетку в диалоге, но сетка очень мала.

Grid<FermetureGagnanteTexte> fermetureGagnanteTexteGrid = new Grid<>(FermetureGagnanteTexte.class,false);
verticalLayout.add(fermetureGagnanteTexteGrid);
dialog.add(verticalLayout);`
dialog.open();

Сетка очень мала в диалоге.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Вот решение для Vaadin 8 с использованием компонента Window.

По описанию вашей проблемы я предполагаю, что вы не установили никаких атрибутов размера с setWidth, setHeight илиsetSizefull.Даже мой пример кода специфичен для Vaadin 8, его также следует применять к компоненту Dialog для Vaadin-Flow.

enter image description here

import com.vaadin.server.VaadinRequest;
import com.vaadin.spring.annotation.SpringUI;
import com.vaadin.ui.Grid;
import com.vaadin.ui.UI;
import com.vaadin.ui.Window;

@SpringUI
public class TestUI extends UI {

    @Override
    protected void init(final VaadinRequest request) {

        showGridInWindow();

    }

    private void showGridInWindow() {

        final Window window = new Window("Window Caption");

        final Grid<Object> grid = new Grid<>();
        grid.addColumn(Object::toString).setCaption("Column 1");
        grid.setSizeFull();

        final List<Object> items = new ArrayList<>();
        for (int i = 0; i < 50; i++) {
            items.add(new String("String #" + i));
        }

        grid.setItems(items);

        window.setContent(grid);
        window.setWidth("600px");
        window.setHeight("400px");
        window.setModal(true);
        window.setClosable(true);

        getUI().addWindow(window);
    }
}
0 голосов
/ 25 сентября 2019

Если вы используете Vaadin Flow, поместите сетку в Div () вместо VerticalLayout.Добавьте Div в диалог и установите размер диалога.Сетка должна заполнить пространство и прокрутить.

Grid<FermetureGagnanteTexte> grid = new Grid<>(FermetureGagnanteTexte.class);
Dialog dialog = new Dialog();
Div div = new Div();
div.add(grid);
dialog.add(div);
dialog.setWidth("600px");

dialog.open();

S.

...