【发布时间】:2013-03-15 07:36:01
【问题描述】:
我使用 wicket 中的 ListView 组件填充表格。表格的最后一列是按钮。因此,对于每一行,我将在最后一列中有一个按钮。我想要实现的是我需要删除相应行的按钮的 onlick。因此,为此我需要在单击按钮时获取列表的当前索引。如何实现/得到这个?
【问题讨论】:
标签: wicket wicket-1.5 wicketstuff
我使用 wicket 中的 ListView 组件填充表格。表格的最后一列是按钮。因此,对于每一行,我将在最后一列中有一个按钮。我想要实现的是我需要删除相应行的按钮的 onlick。因此,为此我需要在单击按钮时获取列表的当前索引。如何实现/得到这个?
【问题讨论】:
标签: wicket wicket-1.5 wicketstuff
我会扩展 Ajax 按钮并在构造函数中传递行引用(项目)......然后你可以做任何你想做的事情......通过覆盖 onSubmit 方法
例子:
private class SpecialButton extends AjaxButton {
final Item<Object> rowItem;
public SpecialButton(final String id, final Item<Object> rowItem) {
super(id);
this.rowItem = rowItem;
}
@Override
protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
// here you cand do everything you want with the item and the model object of the item.(row)
Object object = rowItem.getModelObject();
}
}
您应该将来自 Item<Object> 的 Object 替换为您的中继器模型。创建此私有类后,您可以将其重复用于转发器中的每一行。
如果您想删除该行,您只需从用于生成转发器的列表中删除模型并刷新转发器容器(Wicket 不允许您通过将转发器添加到目标来刷新转发器...而是您必须添加中继器。)
【讨论】:
查看转发器 Wicket 示例页面以了解如何使用 ListView 和其他转发器:
http://www.wicket-library.com/wicket-examples/repeater/
可以从item.getIndex()获取列表的当前索引
protected void populateItem(final ListItem<T> item) {
int index = item.getIndex();
...
【讨论】:
在此处寻找有关如何正确执行此操作的灵感(无索引):
【讨论】: