我的页面中有一个复选框组。检查输入后,如果输入错误,将向用户显示错误消息,但复选框的状态将丢失。这是我的代码的一部分,它显示了一个包含三个项目的组复选框(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);
此外,我还有两个用户名和密码的文本框。如果用户输入了错误的密码,她/他将收到一条错误消息,但在显示错误消息后,检查的项目将被取消选中,您知道我如何保持复选框的状态吗?
答案 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。