Hi, try to setOutputMarkupPlaceholderTag(true) on your expandable, otherwise your component doesn't render at all when setVisible(false)...
Bye Stef Entropy wrote: > I have a list view that will have a button on the left to expand or contract > a section that starts out hidden. this section will have some additional > details. Code and HTML below. > > When I click the button, the event arrives in my onActivityLogExpansion, and > the wicket ajax debug control turns red. The log says the following, that I > did not setOutputMarkupdId to true. But I did as you can see in the code. > > INFO: focus set on ui-id-3 > INFO: focus removed from ui-id-3 > INFO: focus set on btnExpander8 > INFO: focus removed from btnExpander8 > INFO: Received ajax response (771 characters) > INFO: > <?xml version="1.0" encoding="UTF-8"?><ajax-response><component > id="expandable17" ></component></ajax-response> > ERROR: Wicket.Ajax.Call.processComponent: Component with id [[expandable17]] > was not found while trying to perform markup update. Make sure you called > component.setOutputMarkupId(true) on the component whose markup you are > trying to update. > INFO: Response processed successfully. > INFO: refocus last focused component not needed/allowed > INFO: focus set on btnExpander8 > INFO: focus removed from btnExpander8 > INFO: focus set on wicketDebugLink > INFO: focus removed from wicketDebugLink > > > CODE: > PropertyListView<ShareActivityPlusDecode> activityLog = new > PropertyListView<ShareActivityPlusDecode>("activityLog", activities) { > private static final long serialVersionUID = 1L; > > @Override > protected void populateItem(ListItem<ShareActivityPlusDecode> > item) > { > ShareActivityPlusDecode activity = > (ShareActivityPlusDecode) > item.getDefaultModelObject(); > item.add(new Label("CREATION_TIMESTAMP")); > item.add(new Label("ACTIVITY_DC")); > item.add(new ExternalLink("mailTo", "mailto:" + > activity.getEMAIL_ADR()).add(new Label("CREATED_BY_USER_ID"))); > item.add(new Label("USER_PH")); > item.add(new AjaxButton("btnExpander"){ > private static final long > serialVersionUID = 1L; > public void onSubmit(AjaxRequestTarget > target, Form form) { > WebMarkupContainer wmc = > (WebMarkupContainer) > this.getParent().get("expandable"); > onActivityLogExpansion(target, > wmc, this); > } > }).setOutputMarkupId(true); > > WebMarkupContainer expandable = new > WebMarkupContainer("expandable", new > Model<ShareActivityPlusDecode>((ShareActivityPlusDecode) > item.getDefaultModel().getObject())); > expandable.add(new > Label("EMAIL_ADR").setOutputMarkupId(true)); > expandable.add(new > Label("COMMENT").setOutputMarkupId(true)); > boolean reject = > item.getModelObject().getACTIVITY_CD().equals(ACTIVITY_REJECT) || > item.getModelObject().getACTIVITY_CD().equals(ACTIVITY_PENDING_AMENDMENT); > expandable.add(new Label("rejectionReasons", new > Model<String>("")).setVisible(reject).setEnabled(reject).setOutputMarkupId(true)); > expandable.setVisible(false); > expandable.setOutputMarkupId(true); > item.add(expandable); > } > }; > logForm.add(activityLog); > > [...] > > private void onActivityLogExpansion(AjaxRequestTarget target, > WebMarkupContainer wmc, AjaxButton invokingButton) { > Label rejectionReasons = (Label) wmc.get("rejectionReasons"); > ShareActivityPlusDecode activity = (ShareActivityPlusDecode) > wmc.getDefaultModelObject(); > if(rejectionReasons.isEnabled() && > rejectionReasons.getDefaultModelObjectAsString().length()==0) { > //populate rejection reasons as this is a rejection > activity and the > value isn't set yet > List<String> reasonDecodes = > this.sharingService.fetchRejectionReasons(activity.getACTIVITY_CD()); > StringBuilder sb = new StringBuilder(); > for(String reason:reasonDecodes) > sb.append(reason).append(", "); > if(sb.length()>=2) > sb.delete(sb.length()-2, sb.length()); > Model<String> model = (Model<String>) > rejectionReasons.getDefaultModel(); > model.setObject(sb.toString()); > } > wmc.setVisible(!wmc.isVisible()); > target.add(wmc); > if(wmc.isVisible()) > invokingButton.setLabel(new Model<String>("-")); > else > invokingButton.setLabel(new Model<String>("+")); > } > > > > HTML: > > > > > > Date > Activity > Request Decision > User Phone > > <wicket:container wicket:id="activityLog"> > > > <input type="button" > wicket:id="btnExpander" value="+"> > 01/10/2014 > 01/15/2014 > <span wicket:id="CREATED_BY_USER_ID"> > <#> > Rejected-Pending Amendment > Rejected-Pending Amendment > > <wicket:container wicket:id="expandable"> > > > > <label>Email:</label> > > > > > > > <label>Rejection > Reasons:</label> > > > > > > > <label>Comments:</label> > > > > </wicket:container> > </wicket:container> > > > > > -- > View this message in context: > http://apache-wicket.1842946.n4.nabble.com/Expandable-section-in-ListView-tp4665014.html > Sent from the Users forum mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > -- im Auftrag der eFonds Solutions AG, +49-89-579494-3417 --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org