在Wicket Framework中单击Button Inside ListView的功能

时间:2013-03-15 07:36:02

标签: wicket wicket-1.5 wicketstuff

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

3 个答案:

答案 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)

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

Wicket ListView not refreshing

答案 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。)