0

我有 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);
}
4

1 回答 1

0

查看AjaxRequestTarget的文档。

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

我不确定我是否记得正确(我之前在实现正确的刷新行为时遇到了麻烦),但我相信您只能addComponent使用以前添加到页面但未呈现/不可见的组件。这些将被更新和/或重新评估它们的可见性。

但是我可能是错的.. 如果您用普通标签代替 AskingDialogPanel,上述方法是否有效?(只是为了验证我说的是错误的结尾;))

于 2010-02-05T20:03:39.507 回答