Wicket - 每次组件刷新时执行javascript

时间:2017-10-09 09:40:24

标签: java ajax wicket

我想为列表的每个组件运行一小段javascript代码。现在我输出附加到每个组件的行为的;回调中的代码:

onRenderHead()

这很好用。

但是现在我 ajax-refresh 组件列表(可能在列表中添加或删除组件)。在ajax-refresh之后,如何确保为每个组件调用行为javascript代码?这样做有一种简单的“检票方式”吗?或者我应该在途中调用一些手工制作的方法传递public class MyBehavior extends Behavior { @Override public void renderHead(Component component, IHeaderResponse response) { response.render(OnDomReadyHeaderItem.forScript( String.format("my_js_callback('%s')", component.getMarkupId()))); } } 上下文?

2 个答案:

答案 0 :(得分:1)

实际上它很简单:在{a} ajax刷新后,OnDomReadyHeaderItem.forScript()安装的javascript代码称为。我最初的问题是无关紧要的:没有必要让它发挥作用。

Wicket真的很摇滚。

答案 1 :(得分:0)

我建议在列表级别移动javascript代码。列表本身可以为它拥有的每个组件执行所需的javascript。您应该使用附加到列表的AjaxCallListener解决AJAX刷新问题。使用此类,您可以指定在完成ajax请求时要执行的js代码。可以找到更多详细信息here