Thanks for the quick response, Igor. Unfortunately, the ListView is still not updating after making those changes. Any other ideas?

Thanks again,
Ryan

On Jun 24, 2008, at 3:46 PM, Igor Vaynberg wrote:

protected void populateItem(final ListItem item) {
GroupMembership groupMembership = (GroupMembership) item.getModelObject(); item.add(new Label("group", new PropertyModel(item.getmodel(), "group"));
  item.add(new CheckBox("member", new PropertyModel(item.getmodel(),
"selected")));
}

-igor

On Tue, Jun 24, 2008 at 10:28 AM, Ryan O'Hara
<[EMAIL PROTECTED]> wrote:
Also, tried using a LoadableDetachableModel in the ListView:

ListView groupMemberRows = new ListView("groupMemberRow", new
LoadableDetachableModel(){
           protected Object load(){
               return getGroupMemberships();
           }
       }) {
           protected void populateItem(final ListItem item) {
               GroupMembership groupMembership = (GroupMembership)
item.getModelObject();
item.add(new Label("group", groupMembership.getGroup ()));
               item.add(new CheckBox("member", new
PropertyModel(groupMembership, "selected")));
           }
       };

Still no luck.

Ryan

On Jun 24, 2008, at 1:21 PM, Ryan O'Hara wrote:

I'm trying to update a ListView via AJAX. I've looked over a bunch of examples in the archives, but I'm still having some trouble. I'm trying to
wrap the ListView with a WebMarkupContainer and then update that
WebMarkupContainer. I also created a GroupMembership object, which is
passed into the ListView.  When the form is submitted, the
List<GroupMembership> is populated fine, it's just not rendering. Below is
the Java and HTML.  Any help would be greatly appreciated.  Thanks!

-Ryan

Java:

       groupManager = new WebMarkupContainer("groupManager");
       groupManager.setOutputMarkupId(true);
       form.add(groupManager);

       AjaxSubmitLink submit = new AjaxSubmitLink("submit") {
public void onSubmit(AjaxRequestTarget target, Form form) {
               try {
                   setGroupMemberships();
                   target.addComponent(groupManager);
               } catch (Exception e) {
error("Unable to get groups for user " + email + ".");
               }
               target.addComponent(feedbackPanel);
           }
       };
       form.add(submit);

       ListView groupMemberRows = new ListView("groupMemberRow",
getGroupMemberships()) {
           protected void populateItem(final ListItem item) {
               GroupMembership groupMembership = (GroupMembership)
item.getModelObject();
item.add(new Label("group", groupMembership.getGroup()));
               item.add(new CheckBox("member", new
PropertyModel(groupMembership, "selected")));
           }
       };
       groupManager.add(groupMemberRows);

public void setGroupMemberships() {
       groupMemberships.clear();
List<String> userGroups = groupQuery.getGroupsByUser (getEmail());
       List<String> allGroups = groupQuery.getGroups("*");
       GroupMembership groupMembership;
       for (String group : allGroups) {
           groupMembership = new GroupMembership();
           if (userGroups.contains(group)) {
               groupMembership.setGroup(group);
               groupMembership.setSelected(true);
           } else {
               groupMembership.setGroup(group);
               groupMembership.setSelected(false);
           }
           groupMemberships.add(groupMembership);
       }
   }

   public List<GroupMembership> getGroupMemberships() {
       return groupMemberships;
   }


HTML:

   <form wicket:id="manageGroups" name="manageGroups">
<table align="center" width="50%" wicket:id="groupManager">
           <tr>
               <th>Group</th>
               <th>Member</th>
           </tr>
           <tr wicket:id="groupMemberRow" class="hideRow">
               <td><span wicket:id="group"></span></td>
               <td><input wicket:id="member" type="checkbox"/></td>
           </tr>
           <tr>
               <td></td>
               <td align="right"><a wicket:id="save"
class="formButtonAlignedRight">Save</a></td>
           </tr>
       </table>
   </form>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to