2010-11-08 54 views
2

我有一個Wicket頁面,我需要在屏幕上打印我的記錄。我將記錄保存在我的數據庫中。我怎樣才能做到這一點DataView?我需要代碼示例。如何使用Wicket的DataView?

回答

5

有此頁面上的一個古老的例子:

https://cwiki.apache.org/WICKET/a-simple-dataview-example.html

它仍然主要是有效的,已更改的唯一的事情就是檢票口支持泛型的最新版本。因此,這裏的代碼從該頁面的更新源:

Java代碼:

public class Sub1Page extends WebPage{ 

    private static final long serialVersionUID = 1L; 

    public Sub1Page(){ 

     Contact contact = null; 
     final List<Contact> list = new ArrayList<Contact>(); 

     char character; 

     // a - z 
     for(int i = 97; i < 123; i++){ 
      character = (char) i; 
      contact = new Contact(String.valueOf(character)); 
      list.add(contact); 
     } 

     final DataView<Contact> dataView = 
      new DataView<Contact>("simple", new ListDataProvider<Contact>(list)){ 

       private static final long serialVersionUID = 1L; 

       @Override 
       public void populateItem(final Item<Contact> item){ 
        final Contact user = item.getModelObject(); 
        item.add(new Label("id", user.getId())); 
       } 
      }; 

     dataView.setItemsPerPage(10); 

     add(dataView); 

     add(new PagingNavigator("navigator", dataView)); 
    } 

} 

HTML代碼(不變):

<wicket:extend> 

<table cellspacing="0" class="dataview"> 
    <tbody> 
     <tr wicket:id="simple"> 
     <td><span wicket:id="id">Test ID</span></td> 
     </tr> 
    </tbody> 
</table> 

<div wicket:id="navigator"></div> 

</wicket:extend> 
+0

非常感謝你。 – user500129 2010-12-18 01:09:07

2

數據視圖是一個基本的實現AbstractDataView的。數據視圖的目的是通過利用IDataProvider充當數據庫和數據視圖之間的接口,使從數據庫填充重複視圖變得非常簡單。

Example: 

<tbody> 
    <tr wicket:id="rows"> 
    <td><span wicket:id="id">Test ID</span></td> 
    ... 

雖然這個例子是關於一個HTML表,但DataView並不僅限於HTML表。任何類型的列表都可以使用DataView呈現。

和相關的Java代碼:

add(new DataView<UserDetails>("rows", dataProvider) 
{ 
    public void populateItem(final Item<UserDetails> item) 
    { 
      final UserDetails user = item.getModelObject(); 
      item.add(new Label("id", user.getId())); 
    } 
}); 
相關問題