我有一个DataView
,其html是这样的:
<table>
<thead>
<tr>
<td>Username</td>
<td>First Name</td>
<td>Last Name</td>
</tr>
</thead>
<tbody>
<tr wicket:id="dataView">
<td wicket:id="username">Username</td>
<td wicket:id="firstName">First Name</td>
<td wicket:id="lastName">Last Name</td>
</tr>
</tbody>
</table>
我的目标是让整行可以点击。我会使用Link
组件,但我不能 - <tr>
中的每个dataView
元素都已经是Item
。是否有一种简单的方法可以追加Link
在未附加到<a>
标记时获得的行为?即它生成javascript以执行链接功能的行为。
答案 0 :(得分:4)
选项1 :为每个项目添加“onclick”AjaxEventBehavior
:
new DataView<T>(id, dataProvider) {
@Override
protected void populateItem(Item<T> item) {
item.add(new AjaxEventBehavior("onclick") {
@Override
protected void onEvent(AjaxRequestTarget target) {
// This will execute when row is clicked
}
});
// Continue populating item here
}
}
选项2:如果您不想使用Ajax,可以让每行中的所有单元格都链接到同一个东西,然后使用CSS使链接占用整个单元格空间。请参阅此JSFiddle example。