为了账号安全,请及时绑定邮箱和手机立即绑定

Wicket CheckBox 更改其他组件的可见性

Wicket CheckBox 更改其他组件的可见性

千巷猫影 2022-05-21 16:54:29
我有一个 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; 

} }; 


查看完整回答
反对 回复 2022-05-21
  • 1 回答
  • 0 关注
  • 264 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号