无法添加GWT事件处理程序

时间:2013-11-23 05:36:45

标签: java gwt

我的代码存在问题,其中在将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日志。可能是什么原因?

1 个答案:

答案 0 :(得分:0)

直接在DOM中添加小部件不是一个好主意。添加小部件时,GWT会做很多事情。手动向DOM添加元素会导致一些问题。其中一个问题是,事件没有下沉,处理程序也无法工作。

尝试这样的事情:

DOM.sinkEvent(panel.getElement(), Event.ONCLICK);
添加面板后

如果要将面板添加到现有HTML页面,请尝试:

RootPanel.get("modal_panel").add(panel);