0

我使用 wicket 中的 ListView 组件填充表格。表格的最后一列是按钮。因此,对于每一行,我将在最后一列中有一个按钮。我想要实现的是我需要删除相应行的按钮的 onlick。因此,为此我需要在单击按钮时获取列表的当前索引。如何实现/得到这个?

4

3 回答 3

1

查看转发器 Wicket 示例页面以了解如何使用ListView和其他转发器:

http://www.wicket-library.com/wicket-examples/repeater/

您可以从中获取列表的当前索引item.getIndex()

protected void populateItem(final ListItem<T> item) {
    int index = item.getIndex();
    ...  
于 2013-03-15T07:53:33.493 回答
1

我会扩展 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();
    }

}

您应该将 Object from 替换为Item<Object>您的中继器模型。创建此私有类后,您可以将其重复用于转发器中的每一行。

如果要删除该行,您只需从用于生成转发器的列表中删除模型并刷新转发器容器(Wicket 不允许您通过将转发器添加到目标来刷新转发器......相反,您必须添加中继器。)

于 2013-03-15T20:34:23.813 回答
0

在此处查找有关如何正确执行此操作的灵感(无索引):

Wicket ListView 不刷新

于 2013-03-15T15:44:48.430 回答