WebMarkupContainer中的StatelessLinks事件不会触发

时间:2016-04-06 11:40:34

标签: wicket

我的表单中包含StatelessLink(“删除个人资料?”)。点击此链接后,WebMarkupContainer可见,其中包含两个以上的链接(“真正删除个人资料!”和“取消”)。

爪哇:

private StatelessLink deleteProfileWarningLink;
private WebMarkupContainer deleteProfileContainer;
private StatelessLink deleteProfileLink;
private StatelessLink deleteProfileCancelLink;    

public MyForm() {
    ...
    deleteProfileWarningLink = new StatelessLink("profileDeleteWarningLink") {
        @Override
        public void onClick() {
            deleteProfileWarning();
        }
    };

    deleteProfileContainer = new WebMarkupContainer("deleteProfileContainer");
    deleteProfileContainer.setVisible(false);

    deleteProfileLink = new StatelessLink("reallyDeleteProfileLink") {
        @Override
        public void onClick() {
            deleteProfile();
        }
    };

    deleteProfileCancelLink = new StatelessLink("cancelDeleteProfileLink") {
        @Override
        public void onClick() {
            cancelDeleteProfile();
        }
    };

    ...

    add(deleteProfileWarningLink);
    deleteProfileContainer.add(deleteProfileLink);
    deleteProfileContainer.add(deleteProfileCancelLink);
    add(deleteProfileContainer);
}

还有一些HTML:

<fieldset>
    <div wicket:id="deleteProfileContainer" class="deleteProfil">
        <div class="wrapper">
            <a wicket:id="reallyDeleteProfileLink" class="button delete">Really delete profile!</a>
            <a wicket:id="cancelDeleteProfileLink" class="button cancel">Cancel</a>
        </div>
    </div>
    <span class="unitA">
        <a wicket:id="profileDeleteWarningLink" class="button delete">Delete profile?</a>
    </span>
</fieldset>

StatelessLinkWebMarkupContainer的事件从未触发过。

1 个答案:

答案 0 :(得分:1)

我认为您应该使用一些自定义JavaScript来优化它。 这个想法如下:Wicket在页面的初始版本中生成所有三个按钮。第一个按钮最初是可见的,并使用JavaScript显示最初隐藏的(CSS,display:none)容器以及其他两个按钮。剩下的就像现在一样。

最近我们在dev @ mailing list中讨论了与您的问题相关的问题: http://markmail.org/message/dkmxw4urqm444ryc