如何保持复选框的状态?

时间:2012-05-30 08:17:48

标签: wicket

我的页面中有一个复选框组。检查输入后,如果输入错误,将向用户显示错误消息,但复选框的状态将丢失。这是我的代码的一部分,它显示了一个包含三个项目的组复选框(CONFIGURATION,TESTER,DEVELOPER):

    group = new CheckGroup("group", user.getRoleNames());
    group.add(new CheckGroupSelector("groupselector"));

    // The list of possible roles
    List<String> roleNames = new ArrayList<String>();
    roleNames.add(Roles.CONFIGURATION.value());
    roleNames.add(Roles.TESTER.value());
    roleNames.add(Roles.DEVELOPER.value());

    group.add(new ListView("roles", roleNames) {
        protected void populateItem(ListItem item) {
            item.add(new Check("checkbox", item.getModel()));
            item.add(new Label("name", item.getModel()));
        }
    });
    add(group);

此外,我还有两个用户名和密码的文本框。如果用户输入了错误的密码,她/他将收到一条错误消息,但在显示错误消息后,检查的项目将被取消选中,您知道我如何保持复选框的状态吗?

1 个答案:

答案 0 :(得分:2)

我将代码更改为:

       ListView roles = new ListView("roles", roleNames) {
            protected void populateItem(ListItem item) {
                item.add(new Check("checkbox", item.getModel()));
                item.add(new Label("name", item.getModel()));
            }
        };
        roles.setReuseItems(true);
        group.add(roles);

现在它正常工作。因此,唯一需要的是将setReuseItems设置为true。