如何在不使用AjaxRequestTarget的情况下打开弹出窗口或在没有发生单击事件的情况下打开弹出窗口(AjaxRequestTarget很好)?我正在使用wicket / Java
以下是我尝试的但是我收到了NullException
dialog = new MessageDialog("dialog", "Notice", "Decision Matches ", DialogButtons.OK_CANCEL, DialogIcon.WARN) {
public void onClose(AjaxRequestTarget target, DialogButton button) {
}
};
AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
dialog.open( target);
答案 0 :(得分:0)
由于您只渲染页面时没有AjaxRequestTarget,因此您的代码无效。这里最简单的方法是在页面加载后启动AjaxCallback并在那里触发逻辑。
public class HomePage extends WebPage {
private AbstractDefaultAjaxBehavior onPageLoadBehavior;
public HomePage(final PageParameters parameters) {
super(parameters);
(...)
onPageLoadBehavior = new AbstractDefaultAjaxBehavior() {
@Override
protected void respond(AjaxRequestTarget target) {
//will be called after Dom is ready
dialog.open(target);
}
};
add(onPageLoadBehavior);
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
//OnDomReady execute our onPageLoadBehavior callback
response.render(OnDomReadyHeaderItem.forScript(onPageLoadBehavior.getCallbackScript()));
}
}