Hi Haman, ListView items are recreated by default (see RepeatingView or ListView#setReuseItems). So your code is adding an AttributeAppender to an component that will be discarded in benefit of a new one for the next render.
On Fri, Jan 28, 2011 at 10:28 AM, Haman Abel <fha...@online.de> wrote: > Hello to all, > > i am trying to build a dynamic menu based on data from a database. So i > thought i could build it like my code shows it. To highlight the selected > menu i try to dynamically add an attribute to the li tag in the onClick > method. I would also want to load and repaint other panels (for example > loading sub menus ), when the user clicks a menu link. But it is not > working. What am i doing wrong? > > <pre> > ListView<Menu> lv = new ListView<Menu>("mainMenu", menuList) { > @Override > protected void populateItem(final ListItem<Menu> item) { > Menu menuItem = (Menu) item.getModelObject(); > Link<Menu> link = new Link<Menu>("menuLink") { > @Override > public void onClick() { > item.add(new AttributeAppender("id", new > Model("current_menu"), ";")); > System.out.println("item was clicked " + > item.getPath()); > } > > }; > link.add(new Label("menuCaption", > menuItem.getMenuNameDe())); > item.add(link); > } > }; > add(lv); > </pre> > > and this is my panel markup: > > <pre> > <body> > <wicket:panel> > <ul> > <li wicket:id="mainMenu"> > <a href="#" wicket:id="menuLink"><span wicket:id="menuCaption"></span></a> > </li> > </ul> > </wicket:panel> > </body> > </pre> > My goal: > > <pre> > <body> > <wicket:panel> > <ul> > <li wicket:id="mainMenu" id="current_menu"> > <a href="#" wicket:id="menuLink"><span wicket:id="menuCaption"></span></a> > </li> > </ul> > </wicket:panel> > </body> > </pre> > > Thank you for any help! > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > -- Pedro Henrique Oliveira dos Santos