我在网页中使用了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(),但是他们没有帮助。只有刷新页面才有效。
对不起我的语言和丢失的沙发术语。如果您对此问题有任何解决方案或建议,请告诉我。
由于