如何从另一个重新加载vaadin标签页

时间:2015-02-19 15:37:18

标签: java tabs actionlistener vaadin

我在网页中使用了tabcontainer。在其中一个tabpages中,我正在向表中添加一些数据。在另一个tabpage我根据同一表动态生成buttons。但是,插入或删除的更改不会显示在该页面中;没有用于新值的新按钮或已删除记录的消失按钮。我将Vaadin Push用作annotation和手动。我还在填写标签页面上重新填写表格:

public MainTabContainer(){
//...
    tabshtMain.addSelectedTabChangeListener(new SelectedTabChangeListener() {
        @Override
        public void selectedTabChange(SelectedTabChangeEvent event) {
            event.getTabSheet().getSelectedTab().setEnabled(true);
            event.getTabSheet().getSelectedTab().requestRepaintAll();

             if (event.getTabSheet().getSelectedTab() == steril) {
                steril.fillTables();
                tabshtMain.markAsDirty();
                steril.markAsDirty();
                getUI().push();                 
            }
        });

    }
} 

这是代码示例,我在tabpage的类中为记录生成按钮:

private MHorizontalLayout buildMHorizontalLayout_3() {
        horizontalLayout_3 = new MHorizontalLayout();
        horizontalLayout_3.setImmediate(true);
        horizontalLayout_3.setWidth("100.0%");
        horizontalLayout_3.setHeight("-1px");
        horizontalLayout_3.setMargin(false);

        for (StrMachine strMchn : listGrp.keySet()) {
            MButton btnMakine = new MButton();
            btnMchn.setImmediate(true);
            btnMchn.setWidth("80px");
            btnMchn.setHeight("80px");
            btnMchn.setCaption(Icon.CREDIT_CARD.variant(IconVariant.SIZE_4X));

            btnMchn.setHtmlContentAllowed(true);
            btnMchn.setId(strMchn.getCode());
            btnMchn.addClickListener(btnMchnClickListener);

            horizontalLayout_3.addComponent(btnMchn);
            horizontalLayout_3.setComponentAlignment(btnMakine, new Alignment(48));

        }

        return horizontalLayout_3;
        }

为了解决这个问题,我已经将控件设置为“立即”并调用了requestRepaintAll(),但是他们没有帮助。只有刷新页面才有效。

对不起我的语言和丢失的沙发术语。如果您对此问题有任何解决方案或建议,请告诉我。

由于

0 个答案:

没有答案