【问题标题】:making entire row of a wicket datatable clickable使检票口数据表的整行可点击
【发布时间】:2012-06-03 12:15:52
【问题描述】:

是否可以让 Wicket DataTable 的整行都可点击?如果是这样,怎么办? 我已经看到了如何通过扩展 PropertyColumn 类来使单元格可点击的示例,这相当简单,但无法为整行找到简单的解决方案。

【问题讨论】:

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

标签: datatable wicket clickable


【解决方案1】:

这样就可以了。

//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 刷新的新插入的行。
  • 怎么知道onEvent方法中点击了什么对象?
  • 由模型,内部检票口有一个行和对象之间的关系的轨道
  • 有什么方法可以在单击行时返回文档?当我尝试返回 ResourceStreamRequestHandler 时出现 Ajax 错误(其中包含我在单击该行时即时生成的 PDF)。
  • @Johncl 我想是的,我会尝试制作自己的 ajaxbehaivor,但是大约有一年我没有在检票口编程:(
猜你喜欢
  • 1970-01-01
  • 2012-03-30
  • 1970-01-01
  • 2014-04-11
  • 1970-01-01
  • 2017-12-22
  • 1970-01-01
  • 2016-08-03
相关资源
最近更新 更多