2012-05-30 157 views
0

我的頁面中有一個複選框組。檢查輸入後,如果它們錯誤,將向用戶顯示錯誤消息,但複選框的狀態將丟失。這是我的代碼部分,顯示有三個項目(配置,測試者,開發)一組複選框:如何保持複選框的狀態?

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); 

我也有用戶名和密碼的兩個文本框。如果用戶輸入了錯誤的密碼,他/她將會收到一條錯誤消息,但是在顯示錯誤消息之後,選中的項目會被取消選中,您知道如何保持複選框的狀態嗎?

回答

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。