[英]Wicket: Can I use a modal Panel with a AjaxFallbackButton?
我有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);
}
看看AjaxRequestTarget的文档。
应该通过AjaxRequestTarget#addComponent(Component)方法将其标记需要更新的组件添加到此目标。 处理目标时,将渲染其主体并将其添加到信封,并在接收到Ajax响应时在客户端刷新。
我不知道我是否还记得这个正确的(以前贯彻正确的刷新行为我有麻烦了),但我相信你只能addComponent
先前添加到页面,而不是渲染/看不见的组件。 然后将更新这些和/或重新评估其可见性。
但是,我可能是错的。如果将普通Label替换为AskingDialogPanel,上述方法是否有效? (只是为了验证我说错了什么;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.