Wicket 为什么PagingNavigator不生成URL?
我在Wicket中的PagingNavigator有问题,我不明白为什么会有问题。事情是这样的,我想使用带有数据视图的PagingNavigatorWicket 为什么PagingNavigator不生成URL?,wicket,Wicket,我在Wicket中的PagingNavigator有问题,我不明白为什么会有问题。事情是这样的,我想使用带有数据视图的PagingNavigator dataView = new DataView("pageableTicketsList", provider){ protected void populateItem(final Item item) { //Somes codes here }; navigator = new 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:如果看不到更多代码,很难说。你能再骄傲一点吗?