On 22.01.2010, at 03:18, [email protected] wrote:
> http://old.nabble.com/dynamically-adding-components-to-a-ListView-td26626657.html
>
> In this post you said "You found it". Could you please post how did you do it?
>
> Zinovii
in addPanel()
replaced
panels.add(panel);
with
panels.getModelObject().add(panel);
On 04.12.2009, at 00:17, zkn wrote:
> found it.
>
> On 03.12.2009, at 16:19, zkn wrote:
>
>> Hi,
>>
>> I'm trying to dynamically add components to an existing ListView but I can't
>> figure out how to do that. Here is my case:
>>
>> MyPanelContainer class with markup
>>
>> <wicket:panel>
>> <wicket:container wicket:id="panels">
>> <wicket:container wicket:id="panel" />
>> </wicket:container>
>> <a href="#" wicket:id="addPanel">add panel</a>
>> </wicket:panel>
>>
>> and here is how I create the container in the constructor of my page
>>
>> ..
>> MyPanelContainer container = new MyPanelContainer("panels_list_1");
>> List<MyPanel> panels = new ArrayList<MyPanel>();
>>
>> for (int j = 0; j < 5; j++) {
>> MyPanel panel = new MyPanel("panel");
>>
>> .....
>>
>> panels.add(panel);
>> .
>>
>>
>> container.add(new ListView<MyPanel>("panels", panels) {
>> protected void populateItem(ListItem<MyPanel> item) {
>> item.add( item.getModelObject());
>> }
>> });
>> add(Container);
>> ..
>>
>> This works fine and I can see all MyPanel inside the container.
>>
>> Now I'm trying to add another MyPanel inside the container on user click.
>> Here is the constructor of MyPanelContainer
>>
>> public MyPanelContainer(String id) {
>> super(id);
>> ....
>> add(new Link("addPanel") {
>> @Override
>> public void onClick() {
>> addPanel();
>> }
>>
>> });
>> .
>>
>> ..
>> public void addPanel() {
>>
>> ListView< MyPanel > panels = (ListView< MyPanel >)
>> get("panels");
>>
>> MyPanel panel = new MyPanel("panel");
>> ...
>> panels.add(panel);
>> }
>>
>> Basically addPanel() does the same thing as in page constructor to add
>> panels to the list but nothing shows up.
>>
>> Thanks in advance for your help
>>
>> Ozkan
>>
>