【发布时间】:2020-10-26 07:24:13
【问题描述】:
我在 wicket 9 中使用模态对话框,因为旧的模态窗口类已被弃用,我遇到了一些问题。在 wicket 9 文档中没有模态对话框的示例。不知道是我用错了还是有bug
public class MainPanel extends Panel {
private final ModalDialog modalDialog;
public MainPanel(String id, IModel<String> headingIdx, IModel<String> collapseIdx) {
super(id);
setOutputMarkupId(true);
modalDialog = new ModalDialog("modalWindow");
add(new AjaxLink<Void>("showModalDialog") {
@Override
public void onClick(AjaxRequestTarget target) {
modalDialog.setContent(new ModalPanel("content", MainPanel.this){
@Override
protected void close(AjaxRequestTarget target) {
modalDialog.close(target);
}
});
modalDialog.open(target);
}
});
add(modalDialog);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<head>
</head>
<body>
<wicket:panel>
<div class="col-md-1 text-right">
<a wicket:id="showDeleteDialog" class="btn fa fa-trash p24-2x deleteTrashIcon"></a>
</div>
<div wicket:id="modalWindow" class="modalDialog"></div>
</wicket:panel>
</body>
</html>
public abstract class ModalPanel extends Panel {
public ModalPanel(String id, Panel caller) {
super(id);
setOutputMarkupId(true);
add(new AjaxLink<Void>("cancelBtn") {
@Override
public void onClick(AjaxRequestTarget target) {
close(target);
}
});
}
protected abstract void close(AjaxRequestTarget target);
}
问题是模态对话框打开后,它的行为不像模态对话框。
有人用过 ModalDialog,如果它对你有用,你可以分享你的经验吗?
【问题讨论】:
-
您是否在对话框中添加了主题?见
org.apache.wicket.extensions.ajax.markup.html.modal.theme.DefaultTheme。我会尽快更新文档。 -
@svenmeier 是的,它丢失了,这是问题之一。感谢更新文档