我正在对一个wicket原型进行一些测试,我对这个小问题感到困惑。
我在页面中有一个AjaxTabbedPanel,有5个标签。到目前为止它工作正常,但我想在处理新标签请求之前添加一些行为(例如,在标签更改之前进行一些验证并在会话上存储内容)。
AjaxTabbedPanel让我覆盖 onAjaxUpdate(最终的AjaxRequestTarget目标),但这个是在设置新选项卡之后发生的。我需要像“beforeAjaxRequest”之类的东西。
有没有办法在不改变太多事情的情况下这样做? (坚持使用AjaxTabbedPanel,没有JS等)。您可能会想“为什么不一次加载整个页面并使用JS选项卡导航”,但我现在正在尝试使用本机wicket选项卡解决方案(有原因)。
提前致谢!
答案 0 :(得分:1)
尝试覆盖newLink(String linkId,final int index);方法。这是AjaxTabbedPanel在扩展TabbedPanel以添加ajax行为http://www.jarvana.com/jarvana/view/wicket/wicket-extensions/1.2/wicket-extensions-1.2-sources.jar!/wicket/extensions/ajax/markup/html/tabs/AjaxTabbedPanel.java?format=ok时所做的事情。
您可以设置新链接,因此它使用与ajaxtabbedpanel相同的代码,但添加了验证子句,因此当用户单击它时,它首先验证,然后决定是否更改选项卡和更新。
希望有所帮助。