我在wicket中使用ListView组件填充表。我表的最后一列是按钮。因此,对于每一行,我在最后一列中都会有一个按钮。我想要实现的是单击我需要删除相应行的按钮。所以为此,我需要点击按钮获取列表的当前索引。如何实现/获得这个?
答案 0 :(得分:1)
查看转发器Wicket Examples页面,了解如何使用ListView
和其他转发器:
http://www.wicket-library.com/wicket-examples/repeater/
您可以从item.getIndex()
protected void populateItem(final ListItem<T> item) {
int index = item.getIndex();
...
答案 1 :(得分:0)
在这里查看有关如何正确执行此操作的灵感(无索引):
答案 2 :(得分:0)
我会扩展Ajax按钮并在构造函数中传递行引用(item)...然后你可以做任何你想做的事情......通过覆盖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();
}
}
您应该使用您的reapeater型号替换Item<Object>
中的Object。创建此私有类后,您可以将其重用于转发器中的每一行。
如果要删除该行,只需从用于生成转发器的列表中删除该模型并刷新转发器容器(Wicket不允许您通过将转发器添加到目标来刷新转发器...你必须添加转发器continer。)