我是wicket的新手并且遇到了以下问题:
我有一个包含5行的表格。每行包含7个单元格。每个单元格都有一个独特的值。单击一个单元格后,应将其unqiue值发布到服务器。
我想在表上只注册一个ajaxfallbacklink(或类似的),并将模型的值调整为已单击的单元格的唯一值。
答案 0 :(得分:1)
我的直接反应是“你为什么要那样” - 显而易见的解决方案是向每个单元格/单元格内容组件添加ajax onClick行为(显然你只需编写一个行为)。这就是设计工作的方式。
您可以按照建议编写处理程序,但必须遍历表的组件树,向每个单元格添加正确的JS onClick回调。然后,您必须考虑将onClick行为添加到实际上不表达onClick事件的组件的语义。
基本上是一堆自定义代码,绕过框架(非常简洁)的ajax模型,完全没有任何好处。
答案 1 :(得分:0)
一般来说,当你只有一个处理程序时,你怎么知道单击了哪个单元格?听起来几乎不可能。
但Wicket方面的问题很简单,你可以随时编写自己的IModel,或者扩展AbstractReadOnlyModel。您只需要实现一个方法getObject()。
答案 2 :(得分:0)
显然这需要客户端javascript提取信息发送到服务器。 当该信息准备就绪时,以下代码可以生成ajax回调(来自AbstractDefaultAjaxBehavior子类)
generateCallbackScript(new AppendingStringBuffer(“wicketAjaxPost(\'”)。append(getCallbackUrl(false))。append(“\','param ='+ Wicket.Form.encode(yourDataGoesHere)”);
和RequestCycle.get()。getRequest()。getParameter(“param”)来获取java方面的解码值。