2017-01-05 4 views
0

Я пытаюсь создать ListView или Repeater в Wicket 6 для того, чтобы вывести список элементов, как это:Калитка ListView: не выводить «контейнером»

<div class="header">My first header</div> 
<div class="content">My first content</div> 

<div class="header">My second header</div> 
<div class="content">My second content</div> 

<div class="header">My third header</div> 
<div class="content">My third content</div> 

... 

Я пытался использовать ListView как это:

<div wicket:id="listViewItems"> 
    <div class="header" wicket:id="header"></div> 
    <div class="content" wicket:id="content"></div> 
</div> 

и заполнить его, как это:

add(new ListView<MyItem>("listViewItems", myListOfItems) { 
     @Override 
     protected void populateItem(ListItem<MyItem> item) { 
      item.add(new Label("header", new PropertyModel(item.getModel(), "header"))); 
      item.add(new Label("content", new PropertyModel(item.getModel(), "content"))); 
     }   
    }); 

Th е выход я получаю:

<div> 
    <div class="header">My first header</div> 
    <div class="content">My first content</div> 
</div> 

<div> 
    <div class="header">My second header</div> 
    <div class="content">My second content</div> 
</div> 

<div> 
    <div class="header">My third header</div> 
    <div class="content">My third content</div> 
</div> 

Проблема заключается в следующем: Я не хочу, чтобы эти внешние дивы, которые окутывают каждый заголовок/содержание пара. Я хочу, чтобы список был «плоским», как в примере, который я сделал выше.

Как я могу это достичь?

ответ

3

Вы можете дать setRenderBodyOnly(true) для ListView или использовать wicket:container в HTML вместо div

как ниже

<wicket:container wicket:id="listViewItems"> 
    <div class="header" wicket:id="header"></div> 
    <div class="content" wicket:id="content"></div> 
</wicket:container> 
+0

Вы должны были бы назвать setRenderBodyOnly (истинный) по пунктам в ListView в хотя, вы можете переопределить newItem() для этого. – svenmeier

+0

с использованием 'wicket: container' отлично работал –