我的代码存在问题,其中在将Panel附加到DIV后未触发GWT事件处理程序
final FormPanel form = new FormPanel();
VerticalPanel panel = new VerticalPanel();
// Other code omitted for simplicity
DOM.getElementById("modal_panel").appendChild(panel.getElement());
// Submit button
panel.add(new Button("Submit", new ClickHandler() {
public void onClick(ClickEvent event) {
GWT.log("Submit clicked");
form.submit();
}
}));
单击提交按钮时,它应该执行表单提交操作,但它甚至不会在DevMode控制台上显示GWT日志。可能是什么原因?
答案 0 :(得分:0)
直接在DOM中添加小部件不是一个好主意。添加小部件时,GWT会做很多事情。手动向DOM添加元素会导致一些问题。其中一个问题是,事件没有下沉,处理程序也无法工作。
尝试这样的事情:
DOM.sinkEvent(panel.getElement(), Event.ONCLICK);
添加面板后。
如果要将面板添加到现有HTML页面,请尝试:
RootPanel.get("modal_panel").add(panel);