2010-12-15 55 views
1

我在Wicket中遇到PagingNavigator问题,我不明白为什么我需要它。这里的东西,我想用一个PagingNavigator与数据视图为什么PagingNavigator不生成网址?

dataView = new DataView("pageableTicketsList", provider){ 
    protected void populateItem(final Item item) { 
     //Somes codes here 
    }; 
navigator = new PagingNavigator("navigator", dataView); 
dataView.setItemsPerPage(30); 
addOrReplace(dataView); 
addOrReplace(navigator); 

在HTML文件中,我只是有:

<wicket:enclosure child="navigator">  
<div class="navigator"> 
     <span wicket:id="navigator" ></span> 
    </div>  
</wicket:enclosure> 

当我在一个网页浏览器进行测试,其实,我有示出的页数为:

< < < 1 2 3 4 5 6 7 8 9 10> >>

但是任何人都可以点击的。

我萤火看到的网址不正确这样产生的:

<a href="?wicket:interface=:13:mypage:navigator:navigation:0:pageLink:4:ILinkListener::"><span>1</span> 
</a> 

相反,我只是有

<span>1</span> 

我不明白这一点,我在做什么错了?

这里是我的供应商的代码

public class MyProvider implements IDataProvider { 

    private List<Ticket> ticketsList; 

    public MyProvider(TicketService ticketService // and some paramaters){ 
      ticketsList = ticketService.getListBy(//the parameters); 
    } 

    public Iterator iterator(int first, int count) { 
    return ticketsList.subList(first, first + count).iterator(); 
    } 

    public IModel model(final Object object) { 
      return new LoadableDetachableModel() { 
      @Override 
       protected Object load() { 
       return (Ticket)object; 
      }}; 
    } 

    public int size() { 
    return ticketsList.size(); 
    } 

    public void detach() { 

    } 

    public List<Ticket> getTicketsList() { 
    return ticketsList; 
    } 

    public void setTicketsList(List<ListTicketsExtranetView> ticketsList) { 
    this.ticketsList = ticketsList; 
    } 
} 

size()返回的方法正确的价值和navigator.isEnabled()返回true

好了,挖了一整天之后,我终于找到了在那里我的问题就来了从: 我有一个WebMarkupContainer已被添加到我的网页,如果我删除WebMarkupContainerPagingNavigator工作正常。虽然它们之间没有依赖关系,但我使用WebMarkupContainer来显示一个消息,如果一张门票清单是否为空。 那么为什么WebMarkupContainerPagingNavigator有影响?

+0

您使用的是Ajax吗?如果是这样,你是否将'PagingNavigator'添加到请求目标中? – gnuf 2010-12-17 17:44:26

+0

不,我没有使用Ajax – dagofly 2010-12-20 10:44:31

+0

关于WebMarkupContainer:很难说没有看到更多的代码。你可以自豪吗? – bert 2010-12-21 12:39:34

回答

0

您的代码看起来不错。你有没有设置任何东西禁用

setEnabled(false);

这会影响层次结构下面的组件。如果这没有什么不同,请尝试发布更多代码。

+0

我查了一下,发现有任何'navigator.setEnabled(false)',但是谢谢,无论如何,我添加了'navigator.setEnabled(true)',但没有改变T_T。 – dagofly 2010-12-16 10:14:07

1

你可以发布你的班级的代码,实现IDataProvider,例如SortableDataProvider?如果size()方法没有返回正确的值,则可能会遇到您所看到的行为。