如何在对话框中添加网格

时间:2019-09-20 15:16:38

标签: vaadin vaadin-grid vaadin-flow

我需要在对话框中放置一个网格,但是网格很小。

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

对话框中的网格很小。

2 个答案:

答案 0 :(得分:1)

这是使用Vaadin 8组件的Window解决方案。

根据对问题的描述,我假设您未使用setWidthsetHeightsetSizefull设置任何大小属性。甚至我的代码示例都是特定于Vaadin 8的,它也应适用于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);
    }
}

答案 1 :(得分:0)

如果使用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。