服务器不显示分页,服务器端的分页功能

ZK的分页功能默认是在客户端做的,也就是服务器端返回所有的结果,然后客户端每次显示一页的数据,翻页的时候不提交请求到服务器端重新查询。如果服务器端返回的结果比较多,这种方案就不太好了,要实现服务器端的分页也很简单,在使用Listbox或者grid的时候不要使用mold="paging",而是添加一个Paging组件:

然后给Paging增加事件监听:

final Paging paging = getPaging(pagingName);

paging.addEventListener(

"onPaging", new EventListener()

{

public void onEvent(Event event)

{

PagingEvent pagingEvent = (PagingEvent) event;

int pageNumber = pagingEvent.getActivePage();

int firstRow = pageNumber * paging.getPageSize();

queryInfos.get(listName).getPageInfo().setFirstRow(firstRow);

refreshList(listName);

}

});

代码中的getPaging和refreshList都是我自定义的方法,getPaging很简单,因为我的这个代码是在自定义的Window类里面的,所以:

protected Paging getPaging(String pagingName)

{

return (Paging) getFellow(pagingName);

}

而refreshList就比较复杂一些了,根据传入的list的名字查询结果并刷新list:

public void refreshList(String name)

{

try

{

getListbox(getListboxName(name)).setModel(new BindingListModelList(list(name), false));

}

catch (Throwable t)

{

handleException(t);

}

}

核心就是拿到Listbox或者Grid然后setModel。

(Visited 204 times, 1 visits today)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值