我是Vaadin的新手。如何将表组件传递到Vaadin 7中的新弹出屏幕?假设我已经使用 com.vaadin.ui.Table 创建了表。
表aaa = 新表();
目前Vaadin教程仅显示如何在不传递组件/数据的情况下创建打印弹出窗口。基于以下代码
public static class PrintUI extends UI {
@Override
protected void init(VaadinRequest request) {
// Have some content to print
setContent(new Label(
"<h1>Here's some dynamic content</h1>n" +
"<p>This is to be printed.</p>",
ContentMode.HTML));
// Print automatically when the window opens
JavaScript.getCurrent().execute(
"setTimeout(function() {" +
" print(); self.close();}, 0);");
}
}
...
// Create an opener extension
BrowserWindowOpener opener =
new BrowserWindowOpener(PrintUI.class);
opener.setFeatures("height=200,width=400,resizable");
// A button to open the printer-friendly page.
Button print = new Button("Click to Print");
opener.extend(print);
如果有人能告诉我如何将表 aaa 传递到 PrintUI 类中,我将不胜感激。
Window window = new Window("my test table popup");
window.setContent(table);
window.setModal(true);
getUI().addWindow(window);
我发现在弹出窗口中将对象传递给 UI 类的唯一方法是将它们存储在会话中:
Table table = new Table();
VaadinSession.getCurrent().setAttribute("table", table);
在弹出窗口中:
Table t = (Table) VaadinSession.getCurrent().getAttribute("table");
在PrintUI
类中初始化Table
。如果您需要初始化特定的Table
实例,则可以通过.getParameter("idTable")
将表ID参数传递给UI(最终,这就像向URL添加GET
参数一样),然后在PrintUI
的init()
方法中通过带有.getParameter("idTable")
的请求参数检索它。