使用Wicket进行Ajaxrequest但有多个可能的模型值

问题描述 投票:0回答:3

我是wicket的新手并且遇到了以下问题:

我有一个5行的表。每行包含7个单元格。每个单元格都有一个独特的值。单击一个单元格后,应将其unqiue值发布到服务器。

我想在表上只注册一个ajaxfallbacklink(或类似的),并将模型的值调整为已单击的单元格的唯一值。

ajax model wicket
3个回答
1
投票

我的直接反应是“你为什么要那样” - 显而易见的解决方案是向每个单元格/单元格内容组件添加一个ajax onClick行为(显然你只需编写一个行为)。这就是设计工作的方式。

您可以按照建议编写处理程序,但是必须遍历表的组件树,向每个单元格添加正确的JS onClick回调。然后,您必须考虑将onClick行为添加到实际上不表达onClick事件的组件的语义。

基本上是一堆自定义代码,绕过框架(非常整洁)ajax模型,完全没有任何好处。


0
投票

一般来说,当你只有一个处理程序时,你怎么知道单击了哪个单元格?听起来几乎不可能。

但Wicket方面的问题很简单,你可以随时编写自己的IModel,或者扩展AbstractReadOnlyModel。您只需要实现一个方法getObject()。


0
投票

显然这需要客户端javascript提取信息发送到服务器。当该信息准备好时,以下代码可以生成ajax回调(来自AbstractDefaultAjaxBehavior子类)

generateCallbackScript(new AppendingStringBuffer(“wicketAjaxPost(\'”)。append(getCallbackUrl(false))。append(“\','param ='+ Wicket.Form.encode(yourDataGoesHere)”));

和RequestCycle.get()。getRequest()。getParameter(“param”)来获取java方面的解码值。

© www.soinside.com 2019 - 2024. All rights reserved.