Hi Sebastian, Thanks for your feedback. I wasn't recreating (semantics?) the Listview, I was just refreshing it via ajax so it updates with the model changes. What do you mean by "reattach the listview's parent-container"? Do you mean remove the listview and re-add it in the onbeforerender?
J.D. On 12/6/12 4:16 PM, "Sebastien" <[email protected]> wrote: >Well, I think it is because this is the same listview that is redisplayed, >not the new one. >The cause is that you did not add the new listview to its parent. > >But, I would have done a little bit differently because: >1/ You do not have to recreate the listview in ajaxlink's onclick. just >clear cookies and reattach the listview's parent-container >2/ You do not have - generally speaking - to detach you model yourself >and, >moreover, it is not interesting to do it in the same request cycle. It >should be end at the end of the previous cycle. The use of a LDM does this >for you. > >So: just one ListView with a LDM, and it should be good. >If it's still not, maybe the persistence of the cookie update is a little >bit "slow" and IO-async... But I (means myself) could not help in a such >case. > >Best regards, >Sebastien. > > >On Thu, Dec 6, 2012 at 11:41 PM, Corbin, James ><[email protected]>wrote: > >> The ListView is not in a form, which is why I am leaving the default for >> setReuseItems to false. >> I am using a LoadableDetachableModel and verified the load that rereads >> the cookies, does in fact get called after I delete them (reset method >> call below). If I break in the load of the detachable model, it is >> reading that there are still values for the cookies I deleted in the >> previous step. >> >> Basically, here is the body of my Ajax Link's onClick, >> >> RecentlyViewedItemsCollection c = new >> RecentlyViewedItemsCollection(util.getCurrentUser()); >> c.reset(); // this actually deletes all >> the cookies >> getModel().detach(); // this forces the >> detachable model to call its >> load, which attempts to re-read specific cookies that should no longer >> exist >> >> target.add(RecentlyViewedItemsPanel.this.get("itemContainer")); // >> lastly, I refresh the parent (WebMarkupContainer) of the ListView >> >> I would have expected that when the model's load method is called that >>it >> would see that the cookies were removed, but it still finds them. >> >> J.D. >> >> >> >> >> >> >> >> >> On 12/6/12 3:29 PM, "Sebastien" <[email protected]> wrote: >> >> >Hi, >> > >> >Be sure to use a LoadableDetachableModel >> >Also, maybe you set ListView#*setReuseItems* to true (because the >>ListView >> >is in a form)? You can set it to false if you have no validation and >>then >> >you will get fresh data (see ListView javadoc) >> > >> >Hope this helps, >> >Sebastien. >> > >> >On Thu, Dec 6, 2012 at 11:09 PM, Corbin, James >> ><[email protected]>wrote: >> > >> >> I have a ListView that renders items that are populated from user >>cookie >> >> data. The ListView contains a "clear" action that is supposed to >>delete >> >> the cookies then refresh the ListView so it reflects that the cookie >> >>data >> >> was removed. I have code that executes the deletion of the cookies >> >> (works), then I turn around and detach the ListView's model which >> >>triggers >> >> a rereading of the cookie data. For some reason (probably works as >> >> designed), when the model is detach and reloads the cookies, they are >> >>still >> >> present. >> >> If I then force a page refresh, cookie data is in fact removed and >>the >> >> ListView is empty. >> >> >> >> Is there a way to attain this? Am I missing something? I really >>don't >> >> want to have to reload the page to see that the cookie data has been >> >> removed. >> >> >> >> J.D. >> >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> 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]
