打开弹出警报检票口

时间:2015-04-24 04:09:37

标签: java jquery wicket

如何在不使用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);    

1 个答案:

答案 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()));
}
}