我有一个 Wicket 7 CheckBox 和一个隐藏的 DateTextField。当我单击复选框时,我希望出现 DateTextField,反之亦然。为此,我在 WebMarkUpContainer 中添加了 DateTextField。如果可能的话,我不想使用 Ajax。问题是 WebMarkUpContainer 总是隐藏的。一般来说,我的代码如下:class ResultsPanel extends Panel{private static final class ResultsPage {final DateTextField startDate = new DateTextField("startDate", new DateTextFieldConfig().withLanguage("el");final CheckBox checkBox = new CheckBox("checkBox");final WebMarkupContainer wmc = new WebMarkupContainer("wmc"); // bla bla blapublic Results(String id, CompoundPropertyModel propertyModel) { super(id, propertyModel); add(checkBox); wmc.setOutputMarkupPlaceholderTag(true); wmc.add(startDate); add(wmc.setVisible(false)); }public ResultsPanel(String id){ super(id); add(new ResultsPage("resultsPage", new CompoundPropertyModel()));}}
1 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
如果您在单击复选框时不需要触发任何服务器端代码,您可以考虑使用一些简单的 JavaScript 代码来隐藏/显示 DateTextField。可以使用 JavaScriptHeaderItem 将此代码附加到复选框。您可以在用户指南中找到更多详细信息。
更新
在 Wicket 7.x 中你可以试试
new CheckBox("id", model) {
protected boolean wantOnSelectionChangedNotifications() {
return true;
}
protected void onSelectionChanged(Boolean newSelection) {
// do something, page will be rerendered;
} };
添加回答
举报
0/150
提交
取消
