Wicket:我可以使用带有AjaxFallbackButton的模态面板吗?

时间:2010-02-05 05:11:41

标签: java wicket

我有2个输入。当我按下按钮(AjaxFallbackButton)时,这些输入将保存到数据库中。

如果其中一个输入大于10,当我按下按钮时,我想显示一个模态面板,询问用户是否确定他的选项。但模态组件没有出现。有什么想法吗?

 @Override
     public void onSubmit(AjaxRequestTarget target) {

  if (input < 10) { //save to database
} else {
         AskingDialogPanel panel = new AskingDialogPanel("content",
       new ResourceModel("asking.title"),
       new ResourceModel("asking.message")) {
      @Override
      public void onOkClick(AjaxRequestTarget target) {
       super.onOkClick(target);

                                                    //save to database
       modalWindow.close(target);
      }

      @Override
      public void onCancelClick(AjaxRequestTarget target) {

       super.onCancelClick(target);
       modalWindow.close(target);
      }
     };
                                    panel.setOutputMarkupId(true);
                target.addComponent(panel);
                modalWindow.setContent(panel);
                modalWindow.show(target);
}

1 个答案:

答案 0 :(得分:0)

查看AjaxRequestTarget的文档。

  

需要标记的组件   更新应添加到此目标   通过   AjaxRequestTarget#addComponent(组件)   方法。它的身体将被渲染   当目标时添加到信封   处理,并刷新   当ajax响应时,客户端   接收。

我不确定我是否正确记住了这个问题(我之前无法实现正确的刷新行为),但我相信您只能addComponent以前添加到页面但未呈现的组件/看不见。这些将不会更新和/或重新评估其可见性。

但我可能是错的..如果你用AskingDialogPanel替换普通的Label,上面的工作是否有效? (只是为了证实我说的是错误的结局;))