【发布时间】:2012-08-29 15:55:45
【问题描述】:
当用户点击我的 ListView 的一个项目时,我希望它加载另一个页面,其中包含点击行的信息。我尝试将 onClick 事件添加到项目中,如下所示:
item.add(new AjaxFormValidatingBehavior(ClientSearchForm.this, "onclick") {
@Override
protected void onSubmit(AjaxRequestTarget target) {
ClientPage.this.setResponsePage(new EditClientPage());
}
});
但我不确定如何加载我的其他页面。我应该只实例化它吗?
编辑:使用上述代码有效,但仅在单击第一项时加载。
根据要求提供 HTML。
<table border="1" wicket:id="clientTable" id="client-table">
<tr wicket:id="clientRow" id="client-row">
<td>
<span wicket:id="row1"></span>
</td>
<td>
<span wicket:id="row2"></span>
</td>
</tr>
</table>
【问题讨论】:
-
您遇到问题的部分是什么?为不同的项目设置不同的页面?
-
@biziclop 我实际上希望所有项目都加载同一个页面(EditClientPage 将在构造函数中接收一个变量)。问题是使用这种方法只有第一项加载页面。
-
我明白了。将
Link添加到项目中如何,以及您当前添加到项目中的所有内容,您都在链接下添加?为简单起见,链接的标记应为<div>。 -
您的代码应该可以正常工作。当您单击与第一个不同的项目时,您是否收到任何 JavaScript 错误?
-
@AndreaDelBene 没有错误。我实际上设法使用 AjaxEventBehavior 让它工作。但我仍然对为什么这不适用于 AjaxFormValidatingBehavior 感到困惑。