ligerui的两种分页方式
如果数据量不是很大,就直接采用local分页,一次性的把数据全部发送到前台来,之后ligerui自身的grid会自动分页。说一下total,在后台传送jsonstring时传送定义好的total(总条数),你可以定义多少都可以,但是到前台它会自动将总条数赋值给total,这是local下的方式。
而如果数据量很大,一次性加载直接不显示数据或反应很慢的,就需要用server分页了,当用server分页时,每次请求都会比local时多发送两个参数:page和pagesize,不需要自己去发送,只需要在后台获取就行,
intpage=integer.parseint(request.getparameter("page"));
intpagesize=integer.parseint(request.getparameter("pagesize"));
inttotal;
这时你可以把page和pagesize写进你的sql语句:
sql=".........";
sql+="limit"+(page*pagesize-pagesize)+","+pagesize;
这样查出的结果放入jsonstring中,这里要注意total了,total需要自己定义,需要自己重新查一下结果的总条数后赋值给total传到页面,其他的ligerui会帮你搞定!
以下为实现部分内容
============
1.js页面
usergrid=$("#usergrid").ligergrid({
method:'get',
height:580,
width:'100%',
usepager:true,
columns:[
{display:resource.username,name:"username",align:'left',width:100,minwidth:60},
{display:resource.email,name:"email",align:'left',width:250,minwidth:60},
{display:resource.deparentment,name:"deparentment",align:'left',width:100,minwidth:60},
//{display:resource.password,name:"password",align:'left',width:100,minwidth:60},
{display:resource.usertype,name:"privilege",align:'left',width:100,minwidth:60,
render:function(item){
varprivilege=item.privilege;
if(privilege=='1'){
returnresource.tempuser;
}elseif(privilege=='2'){
returnresource.commonuser;
}elseif(privilege=='4'){
returnresource.advanceduser;
}elseif(privilege=='8'){
returnresource.knowledgemanager;
}elseif(privilege=='16'){
returnresource.administrator;
}
},
{display:resource.accountstate,name:"accountstate",align:'left',width:100,minwidth:60,
varaccountstate=item.accountstate;
if(accountstate=='1'){
returnresource.normal;
}elseif(accountstate=='2'){
returnresource.unactive;
}elseif(accountstate=='4'){
returnresource.stopped;
{display:resource.accountexpiredate,name:"accountexpiredate",align:'left',width:100,minwidth:60}
],
url:$('#initpath').val()+'/usercontroller.do?method=getuserpaging&privilege=-1',//必须这样,否则不能传page等参数
pagesize:10,rownumbers:true,
2.action
publicmodelandviewgetuserpaging(dyrkbuseruser,httpservletrequestrequest){
intpage=integer.parseint(request.getparameter("page"));
intpagesize=integer.parseint(request.getparameter("pagesize"));
if(user.getusername()==null){
user.setusername("");//空串时可以搜索到所有此类用户
integerprivilege=user.getprivilege();
if(privilege==-1){
user.setprivilege(null);
list<dyrkbuser>userlist=userservice.getuserpaging(user,page,pagesize);
inttotal=userservice.getusertotalnum();
map<string,object>model=newhashmap<string,object>(1);
model.put("rows",userlist);//数据要的就是rows项
model.put("total",total);
returnnewmodelandview(constants.json_view,model);
最新内容请见作者的github页:http://qaseven.github.io/