Wicket 为什么PagingNavigator不生成URL?

Wicket 为什么PagingNavigator不生成URL?,wicket,Wicket,我在Wicket中的PagingNavigator有问题,我不明白为什么会有问题。事情是这样的,我想使用带有数据视图的PagingNavigator dataView = new DataView("pageableTicketsList", provider){ protected void populateItem(final Item item) { //Somes codes here }; navigator = new PagingNavigator("

我在Wicket中的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>

当我在webBrowser中进行测试时,实际上,我的页码如下所示:

>>

但它们中的任何一个都是可以点击的

我在FireBug中看到URL没有正确生成,如下所示:

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

相反,我只是

<span>1</span>
1
我不明白,我做错了什么

这是我的提供者的代码

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;
    }
}
公共类MyProvider实现IDataProvider{
私人名单;
公共MyProvider(TicketService TicketService//和一些参数){
ticketsList=ticketService.getListBy(//参数);
}
公共迭代器迭代器(int-first,int-count){
返回ticketsList.subList(first,first+count).iterator();
}
公共IModel模型(最终对象){
返回新的LoadableDetachableModel(){
@凌驾
受保护对象加载(){
返回(票证)对象;
}};
}
公共整数大小(){
返回ticketsList.size();
}
公共图书馆{
}
公共列表getTicketsList(){
退票名单;
}
公共作废设置票证列表(列表票证列表){
this.ticketsList=ticketsList;
}
}
方法
size()
返回正确的值,而
navigator.isEnabled()
返回true

经过一整天的挖掘,我终于找到了问题的根源: 我有一个添加到页面的
WebMarkupContainer
,如果我删除该
WebMarkupContainer
,则
PagingNavigator
工作正常。但是,它们之间没有依赖关系,我使用
WebMarkupContainer
来显示一条消息,以确定票证列表是否为空。
那么为什么
WebMarkupContainer
会对
PagingNavigator
产生影响呢?

您的代码似乎是正确的。您是否已将任何内容设置为禁用

setEnabled(假)


这对层次结构中低于该层次结构的组件具有影响。如果这没有什么区别,试着发布更多的代码。

您的代码似乎是正确的。您是否已将任何内容设置为禁用

setEnabled(假)


这对层次结构中低于该层次结构的组件具有影响。如果这没有影响,请尝试发布更多代码。

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

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

我检查并找到了任何
navigator.setEnabled(false)
但是无论如何,谢谢,我添加了
navigator.setEnabled(true)
但没有任何更改。我检查并找到了任何
navigator.setEnabled(false)
但是谢谢,不管怎样,我添加了
navigator.setEnabled(true)
但是没有任何变化。您使用的是Ajax吗?如果是这样,您是否将
PagingNavigator
添加到请求目标?关于WebMarkupContainer:如果看不到更多代码,很难说。你能再骄傲一点吗?你在使用Ajax吗?如果是这样,您是否将
PagingNavigator
添加到请求目标?关于WebMarkupContainer:如果看不到更多代码,很难说。你能再骄傲一点吗?