0

在 Wicket 应用程序中,我有一个带有 SortableDataProvider 扩展的 DefaultDataTable 和一个可点击的列(AbstractColumn 的扩展)。

数据表附带一个搜索字段和按钮,因此用户可以过滤表(比较搜索词和表内容)。

但是,我更喜欢不同的方法。如果用户不必单击按钮来匹配结果会更好,但表格将在每个字符插入或删除搜索字段后更新(立即过滤,而不是在按下按钮后)。此外,与搜索词匹配的记录部分应加下划线或接收不同的字体颜色。

我知道使用 Javascript 可以实现这样的事情,但我不知道如何将 Javascript 附加到数据表。我怎样才能做到这一点?还是有更好/替代的方法来实现我的愿望?

任何帮助将非常感激!

4

1 回答 1

3

您可以使用AjaxFormComponentUpdatingBehavior将 ajax 行为添加到表单组件。ajax 的调用取决于构造函数中指定的 js 事件,在本例中为“onkeyup”。然后,您将组件定位为要重新渲染 ajax 的组件,用于 wicket 4、5target.addComponent(datatable);用于 wicket 6x target.add(datatable);。但请注意,数据表将其 OutputMarkupId 设置为 true target.addComponent(datatable);,这对于 wicket ajax 所针对的任何组件都是必需的。

datatable.setOutputMarkupId(true); 

field.add(new AjaxFormComponentUpdatingBehavior("onkeyup") { 
   @Override 
   protected void onUpdate(AjaxRequestTarget target) { 
           target.addComponent(datatable); 
   }
}); 

您可能还需要节流,希望这会有所帮助!

于 2013-04-17T14:50:05.740 回答