使整个Wicket DataTable 行可点击

9

如何使整行Wicket DataTable可点击?如果可以,应该如何实现? 我已经看到如何通过扩展PropertyColumn类使单元格可点击的示例,这相对容易,但找不到整行的简单解决方案。


我认为没有比使用自己的PropertyColumn实现更简单的解决方案了。您可以查看DataTable类中的newRowItemDataGridView中重写的newRowItem方法。 - rotsch
1个回答

19

这个可以完成工作。

//override this method of the DataTable class
@Override
protected Item<T> newRowItem(String id, int index, final IModel<T> model) {

    Item<T> rowItem = new Item<T>(id, index, model);
    rowItem.add(new AjaxEventBehavior("onclick") {

        private static final long serialVersionUID = 6720512493017210281L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
        //callback or do some stuff
        }

    }); 
    return rowItem;

}

非常有帮助的答案。此外,重写此方法使我可以设置每行的标记ID,在我的情况下非常有用,因为我必须触发一个jQuery事件来突出显示新插入的行,这会触发DataTable的刷新。 - Anthony Richir
在onEvent方法中,你如何知道点击了哪个对象? - DavidVdd
通过模型,内部Wicket跟踪行和对象之间的关系。 - osdamv
有没有办法在行点击时返回一个文档?当我尝试返回一个包含我动态生成的PDF的ResourceStreamRequestHandler时,会出现Ajax错误。 - Johncl
@Johncl 我也这么想,我会尝试自己编写Ajax行为,但已经有一年没有使用Wicket编程了:( - osdamv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接