手动调用组件的wicket事件处理程序

时间:2011-09-07 09:17:32

标签: java event-handling wicket

我正在开发一个Wicket应用程序,我为onchange定义了一个DropDownChoice事件处理程序,我想手动调用该处理程序。有谁知道这样做的方法?

代码示例:

DropDownChoice<String> choices = new DropDownChoice<String>(
  "choices",
  new Model<String>(),
  Arrays.asList("First", "Second", "Third");

choices.add(new AjaxFormComponentUpdatingBehavior("onchange") {
  @Override
  protected void onUpdate(AjaxRequestTarget target) {
    // do stuff
  }
});

我知道我可以将onUpdate的内容拉入其自己的方法并调用该方法,但我很想知道是否有一种直接的事件处理程序。

我知道WicketTester可以模拟被点击或更改的组件。也许它的方式可行吗?

干杯,

上限

2 个答案:

答案 0 :(得分:2)

在Wicket 1.5中,有一个针对此类用例的事件总线。在以前的版本中,您必须模仿它。还有其他与此相关的问题。 (见here

答案 1 :(得分:0)

要从JavaScript或Jquery调用它,您可以调用

htmlElement.trigger("change");

它在Wicket 1.6中调用了AjaxFormComponentUpdatingBehavior(“onchange”)。